Так, MySQL може використовувати індекс на стовпчиках В ЗАМОВЛЕННІ ПО (за певних умов). Однак MySQL не може використовувати індекс для змішаного ASC, DESC порядку за допомогою ( SELECT * FROM foo ORDER BY bar ASC, pants DESC
). Спільний доступ до запиту та CREATE TABLE допоможе нам детальніше відповісти на ваше запитання.
Підказки щодо оптимізації пропозицій ORDER BY:
http://dev.mysql.com/doc/refman/5.1/uk/order-by-optimization.html
Редагувати 21.01.2012 8:53
Були запитання щодо джерела мого твердження про використання індексу зі змішаним ASC / DESC в ORDER BY. З документації ЗАМОВЛЕННЯ Оптимізацією :
У деяких випадках MySQL не може використовувати індекси для вирішення порядку ORDER BY, хоча він все ще використовує індекси для пошуку рядків, які відповідають умові WHERE. До таких випадків належать:
...
Ви змішуєте ASC і DESC:
ВИБІР * З Т1 ЗАМОВЛЕННЯ key_part1 DESC, key_part2 ASC;
...
Також у CREATE INDEX ключове слово DESC не має сенсу
Специфікація index_col_name може закінчуватися ASC або DESC. Ці ключові слова дозволені для майбутніх розширень для визначення сховища зростаючої чи низхідної індексів. В даний час вони розбираються, але ігноруються; Значення індексу завжди зберігаються у порядку зростання.