掌握 MySQL 排序語法、多列排序、DESC/ASC 組合、子句順序規則,確保結果集順序確定性。
SELECT select_list FROM table_name [WHERE condition] ORDER BY column1 [ASC|DESC], column2 [ASC|DESC]... [LIMIT ...];
ORDER BY price DESC, name ASC。FROM → WHERE → ORDER BY → LIMIT。順序錯誤報語法錯誤。ORDER BY 能用上索引時(索引列順序、方向匹配)可避免 filesort,大幅提速。EXPLAIN 出現 Using filesort 表示需額外排序操作,優化方向:建立合適索引、減少結果集、增加 LIMIT。sort_buffer_size 會話級,過大導致內存壓力,通常 2-4M 足夠。-- 錯誤:DESC 僅作用於最後一列 ORDER BY price, name DESC; -- 實際:price ASC, name DESC -- 正確:每列顯式指定 ORDER BY price DESC, name DESC;
ORDER BY 確保結果集確定順序,多列排序需逐列指定方向,子句順序不可亂。結合索引消除 filesort 是排序優化核心。