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)相关推荐

  1. mysql使用文件排序_Mysql排序FileSort的问题

    需求: 有这样一张表(数据有5KW左右),我需要按照时间过滤出一部分数据,然后将这部分数据分页获取: id 主键 create_date  时间戳  (二级索引) 还有其他几十个字段 问题描述: 我写 ...

  2. mysql 减少文件排序_消除更新查询中的mysql文件排序

    我有这样的表用于在mysql中实现队列: CREATE TABLE `queue` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `queue_na ...

  3. mysql临时文件和临时表_理解mysql的临时表和文件排序

    我们经常看到Mysql的explain语句执行结果Extra字段有using temporary或者using filesort,本文主要是为了理解这两个短语的含义,从而有助于我们进行SQL语句优化. ...

  4. 【MySQL】MySQL 两种排序算法

    1.概述 原文:高性能MySQL一书.再抄的,找得快. 无论如何排序都是-一个成本很高的操作,所以从性能角度考虑,应尽可能避免排序或者尽可能避免对大量数据进行排序. 当不能使用索引生成排序结果的时候M ...

  5. mysql调优-排序

    mysql调优-排序优化 第一章.mysql索引排序 文章目录 mysql调优-排序优化 mysql的两种排序方式 方式A:filesort(文件排序) 双路查找(旧) 单路查找(新) 解决方案:(核 ...

  6. Order By文件排序和索引排序

    在MySQL中的ORDER BY有两种排序实现方式: 1.利用有序索引获取有序数据 2.文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index.而文件排序显示 ...

  7. MySQL——Using Filesort文件排序详解

    文章目录 前言 filesort文件排序方式 单路排序或双路排序的选择 trace工具测试单双路排序 文件排序方式选择 前言 在之前,分析SQL索引使用情况时,使用 Explain执行计划参数说明 进 ...

  8. MySQL文件排序算法介绍

    前言 排序是数据库中的一个基本功能,MySQL也不例外.通过Order by语句即能达到将指定的结果集排序的目的, 其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含 ...

  9. mysql部门人员排序设计_MySQL数据库访问性能优化

    MYSQL应该是最流行的WEB后端数据库.大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储. MYS ...

最新文章

  1. 一个权限树的设计与实现
  2. 方案类:城中村社区网运营计划书-地方社区发展经典案例
  3. COM 组件设计与应用(十一)—— IDispatch 及双接口的调用
  4. Python 一个判断对象是否是一个已知类型的函数-isinstance()
  5. 13道Python3实例
  6. JavaScript语言调试技巧
  7. Linux - 简单设置 vim (tab, 行号, 换行)
  8. echart高级使用_Echart使用总结
  9. VS Code 集成 flutter dart 开发
  10. 服务器gsql密码修改,gsql远程登录
  11. ICLR最佳论文“彩票假设”:如何通过彩票假设构建轻量化模型(上)
  12. 伍德里奇计量经济学导论第6版笔记和课后习题答案
  13. 2016 计算机控制技术试题,计算机控制技术试题
  14. php智能合约语言,智能合约语言 Solidity 教程系列9 - 错误处理
  15. edgewin10无法安装_win10内置Edge浏览器遇到“您未安装FLASH控件”如何解决
  16. 三星note10 android q,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-9825】-【V6.0 Android-Q-TG1】...
  17. Windows11显示网速
  18. trymyapps下载_Incentivized Application Starts Up-Trymyapps
  19. Arduino与红外遥控握手
  20. 武汉大学计算机学院2015级,武汉大学研究生课程-数据挖掘-2015级研究生试题.doc...

热门文章

  1. TP getField 用法
  2. 苹果Apple ID惨遭停用?这么简单就搞定
  3. java-代码块课堂练习
  4. 解析企业数字化转型的驱动力
  5. 区域气候模式(WRF)实践应用
  6. html在gzip解压缩,在javascript中解压缩gzip和zlib字符串
  7. android国家代码的获取方式,Android WiFi 获取国家码
  8. 概率论七大分布_统计学的七大支柱
  9. 毫无保留分享给大家,新手做自媒体挣钱,这10大坑千万不要踩
  10. 我的世界电脑版服务器注册教程,《我的世界》中国版服务怎么注册 服务器IP注册教程...