Mysql的文件排序(filesort)
Mysql的文件排序(filesort)
- 1、什么是文件排序?
- 2、缓存区 sort buffer
- 3、单双路排序
- 3.1、单路排序
- 3.2、双路排序
1、什么是文件排序?
文件排序,也叫 filesort ,通常我们在Mysql中使用explain关键字时就可以看到如下所示,在Extra列中就是文件排序。
含义:文件排序的含义是排序的过程将用外部排序而不是索引排序,数据较小时从内存排序,否则需要在磁盘完成排序。这种情况下一 般也是要考虑使用索引来优化的。
2、缓存区 sort buffer
Mysql会给sql语句的执行过程提供一块缓存区,叫 sort buffer ,这个区域的默认大小为1m,放在内存中,但是可以通过如下参数修改。具体有什么用,请看下面:
max_length_for_sort_data
3、单双路排序
文件排序一般分为两种方式,一种是单路排序,一种是双路排序,两种的区别,请看下面:
3.1、单路排序
单路排序的意思是在一条sql语句查询时,会将需要查询的字段以及需要排序的字段全部拿出来,放到上面所说的 sort buffer 这个区域中,进行排序,前提是可以放的下。
3.2、双路排序
当上面在 sort buffer 中放不下的时候,就会进行双路排序,双路排序是只拿出需要排序的字段以及主键id去 sort buffer 中排序,排好序之后进行回表操作,访问主键聚簇索引,再进行数据的获取。
Mysql的文件排序(filesort)相关推荐
- mysql使用文件排序_Mysql排序FileSort的问题
需求: 有这样一张表(数据有5KW左右),我需要按照时间过滤出一部分数据,然后将这部分数据分页获取: id 主键 create_date 时间戳 (二级索引) 还有其他几十个字段 问题描述: 我写 ...
- mysql 减少文件排序_消除更新查询中的mysql文件排序
我有这样的表用于在mysql中实现队列: CREATE TABLE `queue` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `queue_na ...
- mysql临时文件和临时表_理解mysql的临时表和文件排序
我们经常看到Mysql的explain语句执行结果Extra字段有using temporary或者using filesort,本文主要是为了理解这两个短语的含义,从而有助于我们进行SQL语句优化. ...
- 【MySQL】MySQL 两种排序算法
1.概述 原文:高性能MySQL一书.再抄的,找得快. 无论如何排序都是-一个成本很高的操作,所以从性能角度考虑,应尽可能避免排序或者尽可能避免对大量数据进行排序. 当不能使用索引生成排序结果的时候M ...
- mysql调优-排序
mysql调优-排序优化 第一章.mysql索引排序 文章目录 mysql调优-排序优化 mysql的两种排序方式 方式A:filesort(文件排序) 双路查找(旧) 单路查找(新) 解决方案:(核 ...
- Order By文件排序和索引排序
在MySQL中的ORDER BY有两种排序实现方式: 1.利用有序索引获取有序数据 2.文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index.而文件排序显示 ...
- MySQL——Using Filesort文件排序详解
文章目录 前言 filesort文件排序方式 单路排序或双路排序的选择 trace工具测试单双路排序 文件排序方式选择 前言 在之前,分析SQL索引使用情况时,使用 Explain执行计划参数说明 进 ...
- MySQL文件排序算法介绍
前言 排序是数据库中的一个基本功能,MySQL也不例外.通过Order by语句即能达到将指定的结果集排序的目的, 其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含 ...
- mysql部门人员排序设计_MySQL数据库访问性能优化
MYSQL应该是最流行的WEB后端数据库.大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储. MYS ...
最新文章
- 一个权限树的设计与实现
- 方案类:城中村社区网运营计划书-地方社区发展经典案例
- COM 组件设计与应用(十一)—— IDispatch 及双接口的调用
- Python 一个判断对象是否是一个已知类型的函数-isinstance()
- 13道Python3实例
- JavaScript语言调试技巧
- Linux - 简单设置 vim (tab, 行号, 换行)
- echart高级使用_Echart使用总结
- VS Code 集成 flutter dart 开发
- 服务器gsql密码修改,gsql远程登录
- ICLR最佳论文“彩票假设”:如何通过彩票假设构建轻量化模型(上)
- 伍德里奇计量经济学导论第6版笔记和课后习题答案
- 2016 计算机控制技术试题,计算机控制技术试题
- php智能合约语言,智能合约语言 Solidity 教程系列9 - 错误处理
- edgewin10无法安装_win10内置Edge浏览器遇到“您未安装FLASH控件”如何解决
- 三星note10 android q,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-9825】-【V6.0 Android-Q-TG1】...
- Windows11显示网速
- trymyapps下载_Incentivized Application Starts Up-Trymyapps
- Arduino与红外遥控握手
- 武汉大学计算机学院2015级,武汉大学研究生课程-数据挖掘-2015级研究生试题.doc...