2010-11-15 3 views
1

Каждый из моих веб-запросов включал пару запросов «выбрать». Недавно рассматриваемая таблица перешла от 75 000 строк до ~ 90 000, а команда выбора замедлилась с ~ 100 мсек до ~ 1,2 сMysql Команда поиска стала очень медленной

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

Просьба сообщить.

ответ

1

ОБЪЯСНИТЕЛЬНЫЙ ПЛАН по запросу. Найдите ТАБЛИЦУ СКАНИРОВАНИЯ.

Если вы нашли его, добавьте достаточные индексы, чтобы устранить проблему.

3

Похоже, что MySQL переводит внутреннюю таблицу из памяти на диск. Это классический «переломный момент» с MySQL, где производительность падает с обрыва, когда-то достигает определенного размера. Это особенно важно, когда вы понимаете, что конфигурация MySQL по умолчанию чрезвычайно консервативна (даже так называемая «огромная» конфигурация), и несколько настроек сервера могут быть увеличены, по крайней мере, на порядок.

Первый аспект исследования - использовать EXPLAIN по вашему запросу и искать указания, что он помещает временную таблицу на диск. Дополнительная информация доступна в документах MySQL here и here

+0

это то, что я получил -> | id | select_type | стол | тип | possible_keys | ключ | key_len | ref | строки | Экстра | + ---- + ------------- + ----------------- + ------ + ---- ------------------- | 1 | ПРОСТОЙ | fb_welcome_tabs | ref | index_fb_welcome_tabs_on_fb_sig_page_id, index_fb_welcome_tabs_on_fb_sig_app_id | index_fb_welcome_tabs_on_fb_sig_page_id | 53 | const | 1 | Использование где | – Laura

+0

Обратите внимание на http://dev.mysql.com/doc/refman/5.1/en/optimizing-the-server.html, в частности разделы 1, 2 и 4. Похоже, вам нужно увеличить размер ключа буфер. – staticsan

Смежные вопросы