下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

mysql是如何优化ORDERBY?

作者:课课家教育     来源: http://www.kokojia.com点击数:631发布时间: 2016-03-27 08:00:02

标签: mysql优化数据库mysql优化ORDERBY

     MySQL数据库的优化在mysql数据库的发展过程中占据了重要的位置,那么数据库的优化到底是怎样的呢?今天给大家讲解数据库是如何优化ORDERBY,优化后的ORDERBY在日后有什么用处?

mysql是如何优化ORDERBY?_数据库_mysql优化ORDERBY_课课家

  MySQL数据库的发展技术是非常先进的,这就源于MySQL数据库优化的贡献,数据库优化使MySQL数据库更为完善,下面就带着大家了解了解MySQL数据库的优化。

  MySQL数据库的优化是怎么个情况,别着急,下面就是,大家接着了看。希望大家通过本次的阅读,可以学到东西。

  MySQL如何优化ORDERBY

  在一些情况下,MySQL可以直接使用索引来满足一个ORDERBY或GROUPBY子句而无需做额外的排序。

  尽管ORDERBY不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的ORDERBY字段在WHERE子句中都被包括了。下列的几个查询都会使用索引来解决ORDERBY或GROUPBY部分:

  SELECT*FROMt1ORDERBYkey_part1,key_part2,...;

  SELECT*FROMt1WHEREkey_part1=constantORDERBYkey_part2;

  SELECT*FROMt1WHEREkey_part1=constantGROUPBYkey_part2;

  SELECT*FROMt1ORDERBYkey_part1DESC,key_part2DESC;

  SELECT*FROMt1

  WHEREkey_part1=1ORDERBYkey_part1DESC,key_part2DESC;

  在另一些情况下,MySQL无法使用索引来满足ORDERBY,尽管它会使用索引来找到记录来匹配WHERE子句。这些情况如下:

  对不同的索引键做ORDERBY:

  SELECT*FROMt1ORDERBYkey1,key2;

  在非连续的索引键部分上做ORDERBY:

  SELECT*FROMt1WHEREkey2=constantORDERBYkey_part2;

  同时使用了ASC和DESC:

  SELECT*FROMt1ORDERBYkey_part1DESC,key_part2ASC;

  用于搜索记录的索引键和做ORDERBY的不是同一个:

  SELECT*FROMt1WHEREkey2=constantORDERBYkey1;

  有很多表一起做连接,而且读取的记录中在ORDERBY中的字段都不全是来自第一个非常数的表中(也就是说,在EXPLAIN分析的结果中的第一个表的连接类型不是const)。

  使用了不同的ORDERBY和GROUPBY表达式。

  表索引中的记录不是按序存储。例如,HASH和HEAP表就是这样。

  文章中详细介绍的就是MySQL对ORDERBY的优化方法,学会了这一点,相信大家在以后的工作中用起来就信手拈来。

赞(27)
踩(3)
分享到:
华为认证网络工程师 HCIE直播课视频教程