22.3 ORDER BY语句的优化
在查询语句中使用ORDER BY进行排序时,尽量保证ORDER BY子句的字段上存在索引。例如,查询t_goods数据表中的数据,并按照t_stock字段进行排序。
mysql> EXPLAIN SELECT id FROM t_goods ORDER BY t_stock \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t_goods
partitions: NULL
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 14
filtered: 100.00
Extra: Using filesort
1 row in set, 1 warning (0.00 sec)
当t_stock字段上不存在索引时,MySQL会对结果进行filesort排序。
在t_stock字段上添加索引后,再次按照t_stock排序,MySQL将会使用索引对数据进行排序操作,输出如