mysql中orderby排序使用索引优化

 时间:2026-02-20 23:22:18

1、order by子句,尽量使用index方式排序,避免使用filesort方式排序。

建立一个tablA表作为演示。

mysql中orderby排序使用索引优化

2、现在使用explain select * from tablA where age > 20 order by age;

这条sql语句排序不会产生filesort。

mysql中orderby排序使用索引优化

mysql中orderby排序使用索引优化

mysql中orderby排序使用索引优化

3、mysql支持两种方式的排序,filesort和index,index效率高,它指mysql扫描索引本身完成排序,filesort方式效率低。orderby满足两下情况会使用index方式排序,order by语句使用索引最左前列

使用where子句与order by子句条件列组合满足索引最左前列。

如果不在索引列上,filesort有两种算法:双路排序和单路排序。

mysql中orderby排序使用索引优化

4、如果单路排序内存不够,需要增大sort_buffer_size参数的设置,

增大max_length_for_sort_data参数的设置。

mysql中orderby排序使用索引优化

5、mysql两种排序方式:文件排序或扫描索引排序,mysql能为排序与查询使用相同的索引。

mysql中orderby排序使用索引优化

6、以上就是mysql中orderby排序使用索引优化。我们应该尽量使用索引的情况下进行排序,不能使用使用的情况下去优化mysql文件排序的参数设置。

  • jxls2教程(一): 简单使用jxls2.X 导出excel
  • 如何进行网站域名的解析(阿里云)
  • uni-app 使用MD5教程
  • 龙珠Q传寻找龙珠怎么玩
  • Springboot将配置分为生产环境与开发环境文件
  • 热门搜索
    电圆锯什么牌子好 2016流行什么发型 什么是自然数和整数 前打竿什么牌子好 公务员考试成绩什么时候出来 北京祝福你 minus是什么意思 track是什么意思 下嫁是什么意思 沟水汩汩什么意思