您好,欢迎访问一九零五行业门户网

MySQL手册版本 5.0.20-MySQL优化(四) (1)_PHP教程

7.2.9 mysql 如何优化 order by
在一些情况下,mysql可以直接使用索引来满足一个 order by 或 group by 子句而无需做额外的排序。
尽管 order by 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 order by 字段在 where 子句中都被包括了。下列的几个查询都会使用索引来解决 order by 或 group by 部分:
select * from t1 order by key_part1,key_part2,... ;
select * from t1 where key_part1=constant order by key_part2;
select * from t1 where key_part1=constant group 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;
在另一些情况下,mysql无法使用索引来满足 order by,尽管它会使用索引来找到记录来匹配 where 子句。这些情况如下:
对不同的索引键做 order by :
select * from t1 order by key1, key2;
在非连续的索引键部分上做 order by:
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;
有很多表一起做连接,而且读取的记录中在 order by 中的字段都不全是来自第一个非常数的表中(也就是说,在 explain 分析的结果中的第一个表的连接类型不是 const)。
http://www.bkjia.com/phpjc/630969.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/630969.htmltecharticle7.2.9 mysql 如何优化 order by 在一些情况下,mysql可以直接使用索引来满足一个 order by 或 group by 子句而无需做额外的排序。 尽管 order by 不是和...
其它类似信息

推荐信息