Я следующий MYSQL запрос:Как ускорить этот запрос mySQL (filesort probem)?
select IF(`User`='101',`Friend`,`User`) as `Kto`,`Recent`
from `friends`
WHERE (`User`='101' || `Friend`='101') AND `Status`=1
HAVING `Kto` IN (SELECT `Id` FROM `users` WHERE `Id`=`Kto` AND `Online`>='100')
ORDER by Recent DESC limit 11
Использование ORDER by Recent DESC
запроса занимает больше времени (Отображение строки 0 - 10 (11 Всего запросов взял 0,0090 сек) [Последние: 9337663 - 7683644])
Если я не использовать Order by, он слишком медленный (показание строк 0 - 10 (всего 11 запросов, 0 0005 сек.))
В объяснительном запросе с ORDER отображает filesort, о котором я думаю, проблема медленности, см. ниже:
Не могли бы вы помочь мне, как избавиться от этого файлового управления, или как оптимизировать этот запрос, или помочь мне добавить правильный индекс только для этого запроса?
Большое спасибо.
чтения https://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html – Jens
спасибо за ссылку, но я не то, что является препятствием в моем запросе ... –