一条sql的执行流程

文章地址

https://blog.csdn.net/qq_43618881/article/details/118657040

连接器

请求先走到连接器,与客户端建立连接、获取权限、维持和管理连接

mysql缓存池

如果要查找的数据直接在mysql缓存池里面就直接返回数据

分析器

请求已经建立了连接,现在需要对请求的语法进行分析,生成一个语法树

如果语法不对在这里直接报错

优化器

在这里对你写的sql进行优化

比如说表连接查询的时候小表 left join 大表

最后生成执行计划

也就是explain出来的结果

执行器

随后将执行计划交给执行引擎进行操作,比如innodb存储引擎,mysql的存储引擎支持插件化

执行引擎

INNODB存储引擎,会对执行计划进行处理

INNODB缓存池

在INNODB里面也有缓存池,里面会有各种各样的脏页

INNODB流程

select

首先查看数据是否在缓存池当中,如果是的话直接对数据进行返回

如果不在缓存池当中从磁盘读取root 的下面的非聚簇索引页,根据slot,进行二分查找,最后按照偏移量找到对应的页表,如果下一个节点还是非聚簇节点,就重复这个步骤,如果不是非聚簇节点,就查找真正的数据

slot槽

slot槽在页头中,每个页都是有的

slot 记录了每一个页的偏移量,是一个数组的结构,可以支持二分查找

先从 B+Tree 的根开始,逐层检索,直到找到叶子节点,也就是找到对应的数据页为止,然后将数据页加载到内存中,页目录中的槽(slot)采用二分查找的方式先找到一个粗略的记录分组,最后在分组中通过链表遍历的方式查找到记录。

insert

先记录undo日志

修改buffer pool中的数据

        使用double write buffer 两次写进行持久化

        写redo log 

                redo log 根据设置的频率进行刷盘

                记录binlog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/678689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark Streaming 概述及入门案例

一、介绍 1. 不同的数据处理 从数据处理的方式: 流式数据处理(Streaming)批量数据处理(Batch) 从数据处理的延迟: 实时数据处理(毫秒级别)离线数据处理(小时或天级别) 2. 简介 SparkStreaming 是一个准实时(秒或分钟级别)、微批量的数据处理框架Spa…

代码随想录算法训练营第28天(py)| 回溯 | 93.复原IP地址、78.子集、90.子集II

93.复原IP地址 力扣链接 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的IP地址不能含有前导0,共有4个字段,且每个字段不能超过255 思路 class Solution:def restoreIpAddresses(self, s: str) -> List[str]:r…

异或炸弹(easy)(牛客小白月赛95)

题目链接: D-异或炸弹(easy)_牛客小白月赛95 (nowcoder.com) 题目: 题目分析: 一看 还以为是二维差分的题呢 到后来才发现是一维差分问题 这里的距离是 曼哈顿距离 dis abs(x - xi) abs(y - yi) 暴力的做法 就是枚举 n * n 个…

NFC隐藏功能大公开:乘车刷门禁,NFC实用无风险

手机到底集成了多少功能?如今恐怕已经没有人能数的清了。但是你又用到了多少呢?有些功能是不是就从来没打开过呢?花了全款却只用功能的百分之一,是不是感觉很不划算呢? 费流量、占内存、费电通常是用户浪费手机功能的…

SG7050CCN CMOS输出石英晶体振荡器适用于防盗防灾装置

爱普生晶振SG7050CCN是一款额定频率范围2.5MHz至50MHz的石英晶体振荡器(SPXO),支持CMOS输出,具有小尺寸7.0x5.0mm四脚贴片晶振,体积小巧,高稳定性,其中爱普生的一款额定频率16.000MHz,/-50ppm晶振,7050封装常规有源晶振…

大量单号中如何分析出异常单号

什么情况下单号算异常单号呢,首先根据单号物流信息过程轨迹判断哦,比如某个单号已显示快递公司已揽收了,超过24或36、48甚至更长时间也没有看到走件信息哦,一般这类单号也叫揽收后无走信息,这类单号就只能一条揽收信息…

【智能体】文心智能体大赛第二季持续进行中,一起在智能体的海洋里发挥你的创意吧

目录 背景作文小助手AI迅哥问答程序员黄历助手比赛时间第二期赛题丰厚奖品评选说明获奖智能体推荐文章 背景 AI应用(智能体),持续火热,一句话就能创建一个有趣、好玩的应用。 可以说一分钟内就能创建一个有创意的智能体。 看大多…

【第十课】空间数据基础与处理——空间范围处理

一、前言 在利用Arcgis分析中通常会研究我国局部地区的发展,如长江中游城市群、 某个省、长江经济带等,在对这类区域进行可视化时,经常会需要一幅局部地图,通常这种局部地图是很难直接获取的,需要通过一定的方法进行处…

2024年云计算、信号处理与网络技术国际学术会议(ICCCSPNT 2024)

2024年云计算、信号处理与网络技术国际学术会议(ICCCSPNT 2024) 2024 International Academic Conference on Cloud Computing, Signal Processing, and Network Technology(ICCCSPNT 2024) 会议简介: 2024年云计算、…

cesium Material的理解与使用

1.简介 材质Material可以是比较简单的,比如直接将一张图片赋予表面,或者使用条纹状、棋盘状的图案;也可以使用Fabric和GLSL,重新创建一个新的材质或者组合现有的材质。例如,我们可以通过程序生成的纹理(procedural bri…

【leetcode--盛水最多的容器】

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 写出来了一半,想到用双指针&am…

高精度滚珠丝杆在自动化生产中的关键因素!

如今,自动化技术正以前所未有的速度改变着人们的生活和工作方式,特别是在高精度精密设备的制造与应用领域,提高生产效率和优化生产流程正变得越来越重要。在自动化生产中,滚珠丝杆的优化应用对于提高生产效率、保证产品质量至关重…

【OCPP】ocpp1.6协议第4.3章节DataTransfer的介绍及翻译

目录 4.3、DataTransfer-概述 DataTransfer 消息 数据传输请求(DataTransfer Request) 数据传输响应(DataTransfer Response) 使用场景 示例 DataTransfer 请求示例 处理 DataTransfer 响应 示例代码 可能的错误处理 总…

Java1.8语言+ springboot +mysql + Thymeleaf 全套家政上门服务平台app小程序源码

Java1.8语言 springboot mysql Thymeleaf 全套家政上门服务平台app小程序源码 家政系统是一套可以提供上门家政、上门维修、上门洗车、上门搬家等服务为一体的家政平台解决方案。它能够与微信对接、拥有用户端小程序,并提供师傅端app,可以帮助创业者在…

AutoCutVideo自动剪辑软件

随着视频内容创作的普及,找到一款既高效又便捷的视频剪辑工具成为了创作者的迫切需求。在众多选择中,AutoCutVideo以其杰出的功能脱颖而出,提供了一个无与伦比的视频编辑解决方案。这款软件不仅能够支持多样化的视频格式导入,其直…

C#上位机开发

目录 一、上位机简介二、C#语法三、新建VS工程四、WinForm控件4.1 属性4.2 事件4.3 窗体方法4.4 常用控件4.5 布局 五、Serial上位机六、项目打包成安装包6.1 前提准备6.2 打包步骤 一、上位机简介 在单片机项目开发中,上位机也是一个很重要的部分,主要用…

【游戏】Goc赚钱模拟器

Hello!大家好,我是学霸小羊,今天分享一个Goc游戏。 //注:以下代码为Goc原创代码。 大家可以在下面网址写入代码www.51goc.com慧通教育http://www.51goc.com注:Goc编辑器路径: www.51goc.com ➡ 登录 ➡ 游客登陆 ➡…

⌈ 传知代码 ⌋ 微表情识别系统

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

什么是室内外一体化定位

室内外一体化定位是一种技术,它允许在室内外环境中对设备或人员进行连续、无缝的定位跟踪。这种技术结合了多种定位技术的优势,以克服单一技术在室内外环境中可能遇到的局限性。 室内外一体化定位通常涉及以下几种技术: 1. 卫星定位系统&am…

Qt 【Object::connect: No such slot 。。。】解决方法

发生如下所示问题,有三种原因造成: 1.下图中的Q_OBJECT被注释掉或者漏了(该问题不常见) 2.下图中声明slots漏了(新手较常见) 3.发生下面两行中的错误,在下面两行代码中仅仅是一个参数名字的区别…