首页 > 其他分享 >order by的工作流程

order by的工作流程

时间:2024-09-26 16:02:05浏览次数:9  
标签:sort name buffer 流程 age 工作 内存 排序 order

在日常的业务开发中,使用到MySQL的order by对数据进行排序是一个很正常的行为,那么你知道order by是如何工作的嘛?

一、全字段排序
先创建一张user表,字段name,age,address,插入随机数据100w条记录,由于按照name查询,所以给name字段添加索引:
alter table user add index idx_name (name);
我们看一下这条SQL的Explain的执行计划:
EXPLAIN SELECT name,age,address FROM user WHERE name = 'Olivia Wilson' ORDER BY age


从执行计划中可以看出,Extra字段中'Using fliesort'表示的就是用到了排序,MySQL会给每一个线程分配一块内存用于排序,称为sort_buffer

通常情况下,以上排序的SQL执行流程如下:

  1. 初始化内存sort_buffer,确定放入字段:name,age,address
  2. 从name索引树上找到所有满足name='Olivia Wilson’的主键ID
  3. 到主键id索引树上取出整行,取name,age,address三个字段的值,放入sort_buffer字段中
  4. 对sort_buffer中字段按照age做快速排序

我们暂且把这个过程称之为全字段排序,因为把所有需要查询的字段都放入到了sort_buffer中进行排序了,以上步骤4中按’age排序’这个动作,可能在内存中完成,也可能需要使用外部排序,这就取决于排序所需要的内存和参数sort_buffer_size

sort_buffer_size: 就是MySQL为排序开辟的一块内存(sort_buffer)的大小。如果排序的数量小于sort_buffer_size,排序就在内存中完成,如果排序数量太大内存放不下,就利用磁盘临时文件辅助排序

标签:sort,name,buffer,流程,age,工作,内存,排序,order
From: https://www.cnblogs.com/complexlong/p/18433609

相关文章

  • 红帽认证可以找什么工作?这些工作可以看看
    红帽公司作为Linux开源技术的领导者,其提供的RHCE认证不仅是技术实力的象征,更是职场竞争力的有力证明。通过这一认证,你将掌握Linux系统的高级管理、配置与优化技能,成为企业争相招募的IT精英。下面将带你一窥红帽认证工程师的广阔就业前景。一、系统管理员想象一下,你作为企业的系统管......
  • 本科学历能找到人工智能算法岗位的工作吗?好就业吗?
    随着科技的发展,人工智能技术在各行各业的应用日益广泛,催生了大量专注于人工智能的企业,这些企业在招聘网站上发布了众多相关岗位,并且这些岗位的薪资普遍高于其他行业岗位,因此越来越多求职者渴望进入这一行业。对于同样有这一愿景的本科生来说,他们常常会问:“我本科学历能找到人工智能......
  • SVN客户端服务器操作流程
    一,SVN服务器的创建库1,开始菜单--搜索visualSvn,点击VisualSvnServerManager2,打开后如下图所示3,右键--creatnewrespositories,默认选项,点击4,填写库名称5,根据需要选择,点击next6,访问权限,1)如果想要共享的默认选择2)如果想要设置权限选择Customizepermissio......
  • 第八届学生会工作手册
    物天第八届学生会工作手册 学生会·主席团  1 工作规范与流程1.1 场地申请所有场地申请必须提前;且随时关注审批动态,有时候催一催老师 1.1.1 普通课室企业微信-工作台-课室临时使用申请-填写表格单位负责人:刘念;联系方式:07563668936类型一般选多媒体(有投影......
  • 学生会工作手册(简易第二版)
    学生会·主席团2024 年 9 月 24 日 摘要这是物理与天文学院学生会工作手册,其中包含了工作规范流程、部门职责活动安排、具体工作事宜。手册初版由第八届学生会主席团成员编写,之后由每届主席团成员增改,作为学生会工作的规划和指导文件。愿物天学生会越来越好(*.*) 目......
  • 计算机专业毕设选题推荐-基于python的企业工作考勤管理系统 企业员工考勤系统
    精彩专栏推荐订阅:在下方主页......
  • 18 基于51单片机的心率体温监测报警系统(包括程序、仿真、原理图、流程图)
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于51单片机ds18B20读取温度,设置初始心率65设置温度阈值38心率阈值60100如果超过阈值,蜂鸣器报警,led灯亮二、硬件资源基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。......
  • 微服务MongoDB解析部署使用全流程
    1、什么是MongoDB1、非关系型数据库NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常......
  • 对 AI 产品定价模式的新思考:基于人数 or 工作量?
    编者按:传统的基于用户数量的定价模式是否还适用于AI产品?我们今天为大家带来的这篇文章中,作者提出:AI产品应该采用基于工作量的定价模式,而非传统的基于用户数量的定价方式。传统的基于用户数量的定价模式在AI产品中往往会导致资源浪费和成本分配不均。一些员工可能每天都在大量使......
  • SD(Stable Diffusion)模型的基本工作数据流
    SD(StableDiffusion)模型的基本工作数据流主要涉及图像生成过程,它建立在深度学习的基础上,利用神经网络对图像和文本进行建模和学习。以下是SD模型基本工作数据流的详细步骤:1.数据预处理收集数据:首先,需要收集大量的图像数据和相应的文本描述作为训练数据。这些数据需要满足......