什么是file_sort?如何避免file_sort
2024-09-08 14:10:17
阿里巴巴编码规范有这么一例
【推荐】如果有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
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- selenium 关于富文本的处理
- Atitit.软件中见算法 程序设计五大种类算法
- Javascript动画效果(三)
- HttpServletRequest 转换成MultipartHttpServletRequest
- KVO/KVC 实现机理分析
- Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法
- Firebase远程更新应用
- Java中有关日期的一些常见运算与应用(Date,DateFormat,SimpleDateFormat)
- Dynamics 365 CE命令栏按钮点击后刷新表单页面方法
- Odoo 中使用 celery 实现高性能异步任务队列
- springboot中,页面访问不到静态资源
- KVM 部署 日常操作
- dot net core 使用 IPC 进程通信
- JavaScript模块化-RequireJs实现AMD规范的简单例子
- mysql 建库建表建用户
- oracle直方图
- 转载 ORACLE中实现表变量的方法
- Python3利用Dlib19.7实现摄像头人脸识别的方法
- restframework序列化字段和字段构造方式
- Redis Scan迭代器遍历操作原理(二)
热门文章
- 深入理解java集合
- 【Linux】单计算机安装PBS系统(Torque)与运维
- linux sig Segmentation fault error
- form 组件如何扩展user的字段
- TODO: Java虚拟机 初始化过程
- PS 之图片中抠出大树
- java:IO流(处理流(缓冲流,转换流,数据流),对象的序列化,Properties)
- java:HTML(table表格,ul列表)和CSS(导入.css文件,三种定义颜色方式,三种样式选择器,a标签属性顺序,)
- 用DotNetDetour HOOK .net类库
- mac book 显示隐藏系统文件夹