什么是file_sort?如何避免file_sort

Posted magicya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是file_sort?如何避免file_sort相关的知识,希望对你有一定的参考价值。

阿里巴巴编码规范有这么一例

【推荐】如果有order by场景,请注意利用索引的有序性。 order by最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现file_sort的情况,影响查询性能。

如果order by的列上有索引,那么就可以利用索引的有序性进行排序;
如果没有索引,那么就是file_sort,可以理解为外部排序,就是把select的数据,按照order by的列 ,在内存中进行一次排序,然后返回结果。

什么是索引的有序性?

简单理解为,索引本身就是对某列建立的一个可以按照一定顺序规格访问的目录。通过 order by的列上的索引来访问,那么默认获取到的值就是按照这列排好的顺序。就是利用到了索引的有序性。

order by排序原理

1.利用索引的有序性获取有序数据
2.利用内存/磁盘文件排序获取结果
1) 双路排序:是首先根据相应的条件取出相应的排序字段和可以直接定位行数据的行指针信息,然后在sort buffer 中进行排序。
2)单路排序:是一次性取出满足条件行的所有字段,然后在sort buffer中进行排序。
---------------------
作者:一个不靠谱的程序员
来源:CSDN
原文:https://blog.csdn.net/u013705066/article/details/82257099
版权声明:本文为博主原创文章,转载请附上博文链接!










以上是关于什么是file_sort?如何避免file_sort的主要内容,如果未能解决你的问题,请参考以下文章

什么是 CSRF 攻击,如何避免?

什么是过拟合?如何避免过拟合问题?

18什么是FOUC?如何避免

「操作系统」深入理解死锁(什么是死锁?死锁形成条件?如何避免死锁?如何排查死锁?)

什么是 attr 'gtbfieldid' 以及如何避免自动完成行为?

梯度爆炸是什么?有什么后果?如何判断梯度爆炸?如何避免梯度爆炸?