一条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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见的XXE ---playload

XXE(XML External Entity)攻击是一种常见的Web安全漏洞,它允许攻击者干扰应用程序处理XML数据的方式。XXE攻击通常发生在应用程序解析XML输入时,没有正确地处理外部实体。 以下是一些常见的XXE攻击playload: 基本的XX…

基于Python的农业统计数据可视化系统设计与实现

基于Python的农业统计数据可视化系统设计与实现 Design and Implementation of Agricultural Statistical Data Visualization System Based on Python 完整下载链接:基于Python的农业统计数据可视化系统设计与实现 文章目录 基于Python的农业统计数据可视化系统设计与实现摘…

MySql索引的数据结构

mysql索引是什么? 想象一下,你手上有一本数学教材,但是目录被别人给撕掉了,现在要你翻到三三角函数的那一页,该怎么办? 没有了目录,就只有两种方法,要么一页一页翻,要么…

【开源】APIJSON 框架

简述 APIJSON是一个关于API和JSON的综合技术或框架,一种专为API设计的JSON网络传输协议,以及基于这套协议实现的ORM库。 1. 定义与特点: APIJSON是一种基于接口的JSON传输结构协议,它允许客户端定义任何JSON结构来向服务端发起…

前端基础总结

1.将一个数组转换为另一个新的数组 在前端页面中,将数组A赋值给数组B,再将数组A赋值给数组C,改变数组C的值,数组A和数组B的值同时发生改变,因为3个数组都是指向同一内存地址,要避免这种情况,可…

SpringBoot项目使用CXF框架开发SOAP通信接口

文章目录 引言I SOAP1.1 SOAP消息组成1.2 XFire WebService 框架1.3 CXF框架II 测试访问webService效果2.1 浏览器访问暴露出的soap接口2.2 SOAP接口调试工具:SoapUI2.3 使用hutool的SoapClient调用soap接口2.4 使用cxf自带的工具请求webservice接口2.5 使用Postman测试工具来…

反激电源的类型与特点

主要分为 1 固定频率(CCMDCM) 2 可变频率控制(CRM电流临界模式) 这三种模式是很好辨别的,首先我们看左边的连续模式,Vds能看到他有一些尖峰毛刺,这是场效应管关闭的时候,LRC谐振导…

合势而上 聚力成峰 |“我店平台616购物嘉年华发布会”圆满落幕

引言 合势而上,聚力成峰;我店力量,势如破竹。 6月2日,“合势而上聚力成峰——我店平台616购物嘉年华发布会”于杭州顺利举办。会上,我店平台董事长肖翰成携手公司一众高管,正式启动“我店平台616购物嘉年华…

Java中getBytes()方法

我以为旅人将我 热情都燃尽 —— 24.6.4 String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示 而与getBytes相对的,可以通过new String(byte[], decode)的方式来还原这个“深”字时,这个new String(byte[],…

移位运算绝佳的应用

先想一下,如果要给你一个数对应的补码形式,你要计算这个数的1的数目,你有几种做法呢(针对负数的补码也是否能够计算呢): 3种思路分享给你: 整完看看后面的思考题,c一下 first. v…

Git 保留空文件夹结构

假设有如下 helloworld 项目结构: helloworld|--.git|--.gitignore|--Builds|--WebGL|--iOS|--Android现在有个需求,在上传到 github 仓库时,只想保留 WebGL、iOS、Android 文件夹的结构,不想要里面的内容,可以按以下…

屏幕录制工具分享6款,附上详细电脑录屏教程(2024全新)

当你即将参加一个重要的在线会议或一堂关键的直播课,但又担心错过关键点或无法及时做笔记时,屏幕录制无疑是最好的方法之一。屏幕录制是一项非常有价值的技能,它能让你出于各种目的捕捉屏幕上的活动。无论你的目的是创建教程、演示软件功能、…

HiveMetastore

HiveMetastore 背后的存储 select * from DBS; select * from TBLS; select * from TABLE_PARAMS; 查找出没有 totalSize stats 的table SELECT DBS.NAME,t.TBL_NAME from DBS inner join (select DB_ID,TBL_NAME from TBLS where TBLS.TBL_ID not in(select TBL_ID from T…

家里总是“飞尘、毛絮”多怎么办?用这个东西教你轻松解决难题

每次清洁家里卫生的时候,都会发现家里空气中飘浮着毛毛和灰尘,地板上、沙发套、床单被罩都是毛毛。明明每天清洁,为什么家里还有这么多“飞尘、毛絮”呢?如果不将这些“飞尘、毛絮”清洁干净,空气中的飞尘、毛絮进入我…

<PLC><西门子><工控>西门子博图V18中使用SCL语言编写一个CRC16-modbus校验程序

前言 本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。 PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。 除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如…

任务3.3 学生喂养三种宠物:猫、狗和鸟

本任务旨在通过Java面向对象编程中的多态性和方法重载概念,实现一个学生喂养三种不同宠物(猫、狗、鸟)的程序。 定义基类和派生类 创建一个Animal基类,包含所有动物共有的属性和方法,如name、age、speak()、move()和ea…

一篇文章讲透排序算法之归并排序

0.前言 本篇文章将详细解释归并排序的原理,以及递归和非递归的代码原理。 一.概念 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使…

虚拟机Ubuntu 22.04上搭建GitLab操作步骤

GitLab是仓库管理系统,使用Git作为代码管理工具。GitLab提供了多个版本,包括社区版(Community Edition)和企业版(Enterprise Edition)。实际应用场景中要求CPU最小4核、内存最小8GB,非虚拟环境。 以下是在虚拟机中安装社区版步骤:…

git获取的项目无法运行

一、Unsupported engine 问题:在使用命令npm install下载依赖项的时候就遇到了这个问题,有帖子说多试几次,其实这是提示node版本问题,版本的更新出现兼容性问题,多试几次也没用。 解决方案: 更新node.js的…

【Python】使用flask作为web服务器

一、flash轻量级web框架介绍 Python Flask 框架是一个轻量级的 Web 框架,它简单易用,灵活多变,非常适合用于构建小型到中型规模的 Web 应用程序。以下是 Flask 框架的详细介绍: 1、基本概念 Flask 是一个基于 Python 的微型 We…