order by ステートメントの最適化:
場合によっては、MySQL はインデックスを使用して、追加の並べ替えを必要とせずに ORDER BY 句を満たすことができます。 where 条件と order by は同じインデックスを使用し、order by の順序はインデックスの順序と同じで、order by のフィールドはすべて昇順または降順になります。
例: 次の SQL ではインデックスを使用できます。
SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;
SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;
SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC;
ただし、次の場合はインデックスを使用します:
SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;
-- ASC と DESC を組み合わせたフィールドで並べ替えます
SELECT * FROM t1 WHERE key2=constant ORDER BY key1; 行のクエリに使用されるキーワードは、ORDER BY
SELECT * FROM t1 ORDER BY key1, key2;で使用されるものとは異なります。
--別のキーワードには ORDER BY を使用します: