多语言展示
当前在线:1860今日阅读:55今日分享:34

mysql中orderby排序使用索引优化

mysql中orderby排序使用索引优化
工具/原料

mysql

方法/步骤
1

order by子句,尽量使用index方式排序,避免使用filesort方式排序。建立一个tablA表作为演示。

2

现在使用explain select * from tablA where age > 20 order by age;这条sql语句排序不会产生filesort。

3

mysql支持两种方式的排序,filesort和index,index效率高,它指mysql扫描索引本身完成排序,filesort方式效率低。orderby满足两下情况会使用index方式排序,order by语句使用索引最左前列使用where子句与order by子句条件列组合满足索引最左前列。如果不在索引列上,filesort有两种算法:双路排序和单路排序。

4

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

6

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

推荐信息