Запрос SELECT занимает слишком много времени после обновления MySQL

0

Я только что обновил мою версию MySQL до 5.7. Запрос SELECT с четырьмя INNER-JOINS и который ранее занимал около 3 секунд для выполнения, теперь занимает настолько много времени, что я даже не могу его отслеживать. Немного профилирования показывает, что часть "Отправить данные" занимает слишком много времени. Может ли кто-нибудь сказать мне, что происходит не так? Вот некоторые данные. Обратите внимание, что запрос все еще выполняется в данный момент времени:

    +----------------------+-----------+
    | Status               | Duration  |
    +----------------------+-----------+
    | starting             |  0.001911 |
    | checking permissions |  0.000013 |
    | checking permissions |  0.000003 |
    | checking permissions |  0.000003 |
    | checking permissions |  0.000006 |
    | Opening tables       |  0.000030 |
    | init                 |  0.000406 |
    | System lock          |  0.000018 |
    | optimizing           |  0.000019 |
    | statistics           |  0.000509 |
    | preparing            |  0.000052 |
    | executing            |  0.000004 |
    | Sending data         | 31.881794 |
    | end                  |  0.000021 |
    | query end            |  0.003540 |
    | closing tables       |  0.000032 |
    | freeing items        |  0.000214 |
    | cleaning up          |  0.000028 |
    +----------------------+-----------+

Здесь вывод EXPLAIN:

+----+-------------+--------------------+------------+------+---------------+------------+---------+-------+---------+----------+----------------------------------------------------+
| id | select_type | table              | partitions | type | possible_keys | key        | key_len | ref   | rows    | filtered | Extra                                              |
+----+-------------+--------------------+------------+------+---------------+------------+---------+-------+---------+----------+----------------------------------------------------+
|  1 | SIMPLE      | movie_data_primary | NULL       | ref  | cinestopId    | cinestopId | 26      | const |       1 |   100.00 | NULL                                               |
|  1 | SIMPLE      | mg                 | NULL       | ALL  | NULL          | NULL       | NULL    | NULL  |  387498 |    10.00 | Using where; Using join buffer (Block Nested Loop) |
|  1 | SIMPLE      | crw                | NULL       | ALL  | NULL          | NULL       | NULL    | NULL  | 1383452 |    10.00 | Using where; Using join buffer (Block Nested Loop) |
|  1 | SIMPLE      | cst                | NULL       | ALL  | NULL          | NULL       | NULL    | NULL  | 2184556 |    10.00 | Using where; Using join buffer (Block Nested Loop) |
+----+-------------+--------------------+------------+------+---------------+------------+---------+-------+---------+----------+----------------------------------------------------+
  • 1
    Вы можете проверить план выполнения запроса?
  • 0
    Еще не сделал этого.
Показать ещё 2 комментария
Теги:
database

1 ответ

0

Похоже на проблему индексирования при обновлении документации msssql version- says-

Если вы выполняете двоичное обновление без демпинга и перезагрузки таблиц, вы не можете обновлять его напрямую с MySQL 4.1 до 5.1 или выше. Это происходит из-за несовместимого изменения формата индекса таблицы MyISAM в MySQL 5.0. Обновление с MySQL 4.1 до 5.0 и восстановление всех таблиц MyISAM. Затем выполните обновление с MySQL 5.0 до 5.1 и проверьте и восстановите свои таблицы. Модификации обработки наборов символов или сортировок могут изменить порядок сортировки символов, что приводит к неправильному порядку записей в любом индексе, который использует поврежденный набор символов или сопоставление, Такие изменения приводят к нескольким возможным проблемам: результаты сравнения, которые отличаются от предыдущих результатов. Неспособность найти некоторые значения индекса из-за ошибочных записей индекса. Ошибочные результаты ORDER BY. Таблицы, которые CHECK TABLE сообщают как нуждающиеся в ремонте

Проверьте наличие links-

1) несовместимость контрольных таблиц

2) контрольный стол

3) перестраивающие столы

  • 0
    Я просто перестроил свои столы и починил их. Но все же запрос занимает слишком много времени :(
  • 0
    Как вы обнаружили, что «Отправить данные» особенно занимает много времени?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню