mysql优化order by 语句
程序员文章站
2022-05-02 13:16:56
...
优化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;
--order by 的字段混合ASC 和DESC
SELECT * FROM t1 WHERE key2=constant ORDER BY key1;
--用于查询行的关键字与ORDER BY 中所使用的不相同
SELECT * FROM t1 ORDER BY key1, key2;
--对不同的关键字使用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;
--order by 的字段混合ASC 和DESC
SELECT * FROM t1 WHERE key2=constant ORDER BY key1;
--用于查询行的关键字与ORDER BY 中所使用的不相同
SELECT * FROM t1 ORDER BY key1, key2;
--对不同的关键字使用ORDER BY:
以上就是mysql优化order by 语句的内容,更多相关内容请关注PHP中文网(www.php.cn)!
上一篇: 前端进阶(三):变量对象详解
推荐阅读
-
mysql SELECT语句去除某个字段的重复信息_MySQL
-
mysql 优化变量_MySQL
-
mysql alter语句用法实例_MySQL
-
Mysql优化原则_MySQL
-
Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用_MySQL
-
掌握MySQL SELECT语句的巧妙方法
-
mysql过滤两个不同字段的sql语句
-
一条统计Group By语句优化
-
MySQL:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY with sql_mode=only_full_group
-
php执行mysql语句问题