Как уже говорилось, "использование файловой сортировки" и "использование временных" не всегда подразумевают плохую производительность.
Здесь - это некоторые основные рекомендации по повышению производительности операторов ORDER BY.Основные моменты:
Если вы хотите увеличить скорость ORDER BY, проверьте, можете ли вы заставить MySQL использовать индексы вместо дополнительной фазы сортировки.Если это невозможно, вы можете попробовать следующие стратегии:
Увеличить размер переменной sort_buffer_size.
Увеличить размер переменной read_rnd_buffer_size.
Использовать меньше оперативной памятидля каждой строки, объявляя столбцы настолько большими, насколько это необходимо для хранения значений, хранящихся в них.Например, CHAR (16) лучше, чем CHAR (200), если значения никогда не превышают 16 символов.
Сначала попробуйте использовать индексы (убедитесь, что поля, по которым вы сортируете, имеют индексы).Обратите внимание, что увеличение системных переменных sort_buffer_size и read_rnd_buffer_size также может оказать негативное влияние на другие запросы - рассмотрите возможность установки их специально для сеанса, для которого они нужны, и оставьте их по умолчанию для всех остальныхсессий.