首页 > 数据库 > MySQL > MySQL 5.7 ORDER BY排序的优化
SELECT * FROM t1 ORDER BY key_part1,key_part2,... ; SELECT * FROM t1 WHERE key_part1 = constant ORDER BY key_part2; SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC; SELECT * FROM t1 WHERE key_part1 = 1 ORDER BY key_part1 DESC, key_part2 DESC; SELECT * FROM t1 WHERE key_part1 > constant ORDER BY key_part1 ASC; SELECT * FROM t1 WHERE key_part1 < constant ORDER BY key_part1 DESC; SELECT * FROM t1 WHERE key_part1 = constant1 AND key_part2 > constant2 ORDER BY key_part2;在某些情况下,MySQL不会使用索引进行排序
SELECT * FROM t1 ORDER BY key1, key2;查询在索引的非连续部分上使用排序
SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;排序中既有ASC又有DESC
SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;用于获取数据的索引不同于ORDER BY排序的索引
SELECT * FROM t1 WHERE key2=constant ORDER BY key1;查询使用表达式进行排序,而不是使用索引的字段名进行排序
SELECT * FROM t1 ORDER BY ABS(key); SELECT * FROM t1 ORDER BY -key;查询关联了许多表,并且ORDER BY使用的字段不是返回行的第一个非常量表中的字段(在EXPLAIN执行计划输出中第一个表的连接类型不是const)
INSERT INTO foo SELECT a, COUNT(*) FROM bar GROUP BY a ORDER BY NULL;与提升ORDER BY速度相关的系统参数:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26506993/viewspace-2122017/ ,如需转载,请注明出处,否则将追究法律责任。