Оптимизация ORDER BY — о чем многие забывают
Мы тоже с этим столкнулись. В одной базе один запрос выполнялся 30-50 сек, с join 7 таблиц (такова структура проекта). При этом для одной из таблиц почему-то не использовались индексы, хотя они все были, и выбирало каждый раз все 500к строк, чтобы оставить в итоге 1. Плюс Using temporary; Using filesort
Убрав в конце ORDER BY, запрос стал выполняться порядка 5 секунд, и стали использоваться индексы Using index, но в rows всё-равно указывало все 500к строк.
Перешли на SELECT STRAIGHT_JOIN, сохранив сортировку - время вышло тоже порядка 5с, но при этом снова сортировало всё.
Плюс
http://dev.mysql.com/doc/refman/5.1/en/order-by-optimization.html
Как MySQL оптимизирует ORDER BY, LIMIT и DISTINCT
Комментариев нет:
Отправить комментарий