Запрос загружает процессор на 100% и не завершается даже после 6 часов - PullRequest
0 голосов
/ 05 августа 2011

Для решения проблемы ниже, я получил рабочий запрос.Но когда я выполняю вышеупомянутый запрос для таблицы, содержащей 2 миллиона записей, процесс MySQL, кажется, загружает процессор со 100% загрузкой.Я ждал более 15 минут, и запрос все еще выполняется.Существуют ли какие-либо изменения производительности, которые могут улучшить это?

Справка по подзапросу Mysql

select
    u.website,
    sum(e.ULVolume + e.DLVolume) as volume
from mytable e
left join mytable u on u.PID = e.PID and u.event ='update'
where e.Event = 'end'
group by 1;

Система работает с процессором Intel (R) Xeon (R) X3430 @ 2,40GHz CentOS 5.6 с 8 ГБ ОЗУ.

Обновление с выводом EXPLAIN:

*************************** 1. row ***************************
           id: 1   select_type: SIMPLE
        table: e
         type: ALL possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 2858631
        Extra: Using where; Using temporary; Using filesort
*************************** 2. row ***************************
           id: 1   select_type: SIMPLE
        table: u
         type: ALL possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 2858631
        Extra: 2 rows in set (0.00 sec)

Ответы [ 2 ]

3 голосов
/ 05 августа 2011

Очевидным является создание индексов для mytable.PID и mytable.event.

1 голос
/ 05 августа 2011

Какие показатели у вас есть в ваших таблицах? Попробуйте добавить EXPLAIN, чтобы посмотреть, действительно ли используются индексы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...