当前位置: 首页 > news >正文

一条SQL语句的执行过程(附一次两段式提交)

一条SQL语句的完整执行过程是怎样的呢?我们用select和update语句来举例。

注意在mysql8后,进入服务层后,取消了去查询缓存(属于Server服务层)这个步骤,缓存中key是SQL语句,value是值,这样其实并不会提升性能,因为只要有修改语句,缓存数据就无效了,下面我们以mysql8为例子:

1.select语句

  • 建立连接,首先经过连接层,连接器会校验你的用户名和密码是否正确,之后,会查询当前用户的权限。

  • 进入服务层,解析器则会解析此SQL语句,进行语法分析等待,之后优化器会对sql语句进行优化,比如使用什么索引,然后就是执行器去执行SQL语句了,执行前还得判断此用户的权限

  • 如果是innodb引擎,先去BufferPool缓冲池(属于存储引擎)中查看是否存在对应数据,如果没有,存储引擎与磁盘进行交互,将查询结构先存入缓冲池,然后再返回。

2.update语句

比如 update user set name = "张三" where id = 2

  • 前面与select语句过程一样,查出id为2的这行记录。

  • 执行器拿到数据后,将name值改为张三。

  • 先将这次数据修改更新到缓冲池中,同时记录内存中的redolog日志以及binlog日志,根据redolog的刷盘策略,可能也会刷新到磁盘中的redolog日志。

  • 收到事务commit提交指令。(在此刻如果发生宕机,由于事务不是prepare状态,认为事务没有执行完毕,所以不会恢复)

  • 刷新内存redolog到磁盘中的redolog日志,并将事务状态改为prepare,日志中记录的数据状态此刻为prepare。

  • 将内存缓存中的binlog日志刷新到磁盘binlog日志。

  • 刷新内存redlog到磁盘中的redolog日志,将事务状态改为commit,redolog日志中记录的数据状态为commit。

  • 返回事务执行结果。

相关文章:

一条SQL语句的执行过程(附一次两段式提交)

一条SQL语句的完整执行过程是怎样的呢?我们用select和update语句来举例。 注意在mysql8后,进入服务层后,取消了去查询缓存(属于Server服务层)这个步骤,缓存中key是SQL语句,value是值,这样其实并不会提升性…...

Python基础知识详解:数据类型、对象结构、运算符完整分析

文章目录 python基础知识数据类型类型检查对象(object)对象的结构变量和对象类型转换运算符(操作符)1. 算术运算符2. 赋值运算符3. 比较运算符(关系运算符)4. 逻辑运算符5. 条件运算符(三元运算符) 总结 py…...

基于Streamlit的应用如何通过streamlit-authenticator组件实现用户验证与隔离

Streamlit框架中默认是没有提供用户验证组件的,大家在基于streamlit快速实现web应用服务过程中,不可避免的需要配置该应用的访问范围和权限,即用户群体,一般的做法有两种,一种是通过用户密码验证机制,要求只…...

[虚幻引擎插件介绍] DTGlobalEvent 蓝图全局事件, Actor, UMG 相互回调,自由回调通知事件函数,支持自定义参数。

本插件可以在虚幻的蓝图 Actor, Obiect,UMG 里面指定绑定和执行消息,可带自定义参数。 参数支持 Bool,Byte,Int,Int64,Float,Name,String,Text,Ve…...

2023数学建模国赛选题建议及BC题思路

大家好呀,全国大学生数学建模竞赛今天下午开赛啦,在这里先带来初步的选题建议及思路。 目前团队正在写B题和C题完整论文,后续还会持续更新哈,以下只是比较简略的图文版讲解,团队目前正在写B、C题完整论文,…...

vue3:4、组合式API-setup选项

setup每次都要return&#xff0c;好麻烦。怎么解决&#xff1f; 使用 <script setup> 语法糖&#xff08;底层帮你return了&#xff09; 写法如下...

【C刷题训练营】第三讲(c语言入门训练)

前言: 大家好&#xff0c;我决定日后逐渐更新c刷题训练营的内容&#xff0c;或许能帮到入门c语言的初学者&#xff0c;如果文章有错误&#xff0c;非常欢迎你的指正&#xff01; &#x1f4a5;&#x1f388;个人主页:​​​​​​Dream_Chaser&#xff5e; &#x1f388;&…...

简述视频智能分析EasyCVR视频汇聚平台如何通过“AI+视频融合”技术规避八大特殊作业风险

视频智能分析EasyCVR视频汇聚平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、录…...

2023年9月NPDP产品经理国际认证报名,找弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…...

【MySQL】MySQL的安装,登录,配置和相关命令

文章目录 前言一. 卸载不需要的环境二. 获取MySQL的yum源三. 安装MySQL和启动四. 尝试登录MySQL方法1&#xff1a;获取临时root密码方法2&#xff1a;没有密码方法3&#xff1a;配置文件 五. 简单配置结束语 前言 本篇文章是基于云服务器&#xff1b;Linux&#xff1a;Centos7…...

攻防世界-WEB-php_rce

打开靶机链接 搜村ThinkPhP V5存在远程命令执行的漏洞 构建payload /index.php?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]ls 查询当前目录文件&#xff0c;没有发现flag。调整payload 得到flag文件&#xff0c;修…...

WRFDA资料同化实践技术

数值预报已经成为提升预报质量的重要手段&#xff0c;而模式初值质量是决定数值预报质量的重要环节。资料同化作为提高模式初值质量的有效方法&#xff0c;成为当前气象、海洋和大气环境和水文等诸多领域科研、业务预报中的关键科学方法。资料同化新方法的快速发展&#xff0c;…...

C++11新特性② | 左值、左值引用、右值与右值引用

目录 1、引言 2、值类别及相关概念 3、左值、右值 4、左值引用、右值引用 5、移动语义 5.1、为什么需要移动语义 5.2、移动语义定义 5.3、转移构造函数 5.4、转移赋值函数 6、标准库函数 std::move 7、完美转发 std::forward VC常用功能开发汇总&#xff08;专栏文章…...

Python Opencv实践 - Harris角点检测

参考资料&#xff1a;https://blog.csdn.net/wsp_1138886114/article/details/90415190 import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/chinease_tower.jpg", cv.IMREAD_COLOR) plt.imshow(img[:,:,::-1])#…...

el-upload上传图片到七牛云或阿里云

&#xff08;1&#xff09;绑定上传地址&#xff0c;上传数据对象 <el-upload class"upload-demo" :action"uploadUrl" :data"uploadData":on-success"handleSuccess" :file-list"[]" :show-file-list"false"…...

Web jQuery—选择器、样式和效果

jQuery 选择器、样式和效果 代码下载 jQuery 介绍 JavaScript库&#xff1a;即 library&#xff0c;是一个封装好的特定的集合&#xff08;方法和函数&#xff09;。从封装一大堆函数的角度理解库&#xff0c;就是在这个库中&#xff0c;封装了很多预先定义好的函数在里面&a…...

Java和Kotlin的Field在继承中的不同表现

Kotlin是一个宣称与Java兼容性较好的语言&#xff0c;但在接触后发现一些技术还是有“概念上”的冲突&#xff0c;本文就记录下两者对象的Field&#xff08;中文的说法有字段、域、属性、成员变量&#xff0c;下文若出现这些表达&#xff0c;指的都是这个东西&#xff09;在继承…...

MySQL 子查询

文章目录 1.简介2.优势3.分类3.1 标量子查询3.2 行子查询3.3 列子查询IN 操作符ALL 操作符ANY/SOME 操作符 3.4 表子查询 4.关联子查询5.EXISTS 和 NOT EXISTS6.横向派生表7.附录参考文献 1.简介 子查询是另一个语句中的 SELECT 语句。 子查询也称为内查询&#xff08;Inner …...

Ubuntu离线或在线安装CMake

首先下载适用于Ubuntu的CMake安装包&#xff0c;可以去官网下载&#xff0c;也可以通过下面的命令下载&#xff08;需要联网&#xff09;&#xff1a; wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz将下载的安装包进行解压&#xff1a; tar -xvzf cmake-3.22.1.ta…...

后端面试话术集锦第 十七 篇:MySQL面试话术

这是后端面试集锦第十七篇博文——MySQL面试话术❗❗❗ 1. 解释一下单列索引和联合索引 单列索引是指在表的某一列上创建索引。 联合索引是在多个列上联合创建索引。 单列索引可以出现在where条件的任何位置,而联合索引需要按照一定的顺序来写。在多条件查询的时候,联合索引…...

过渡金属配合物构建工具:从配位模板到多齿配体的智能设计平台

1. 项目概述&#xff1a;为什么我们需要一个“构建工具”&#xff1f;在合成化学、材料科学乃至药物研发领域&#xff0c;过渡金属配合物扮演着核心角色。它们不仅是催化反应的“发动机”&#xff0c;也是功能材料&#xff08;如发光材料、磁性材料&#xff09;的“结构单元”&…...

物联网国赛备赛指南:手把手教你用LoRa通用库实现光照传感与LED联动(附完整代码)

物联网国赛实战&#xff1a;LoRa光照传感与LED联动的模块化开发策略 在备战全国大学生物联网设计竞赛的过程中&#xff0c;如何将LoRa无线通信技术高效整合到项目中&#xff0c;往往是决定作品竞争力的关键。不同于简单的功能实现&#xff0c;竞赛级项目需要兼顾代码可维护性、…...

Java Web中基于JWT的七层权限控制系统设计

1. 为什么JWT不是“万能钥匙”&#xff0c;而是一个需要精心设计的权限信封在Java Web开发中&#xff0c;一提到权限控制&#xff0c;很多人第一反应就是“加个Spring Security&#xff0c;配个JWT&#xff0c;不就完事了&#xff1f;”我去年接手一个医疗SaaS系统的权限模块重…...

用RT-Thread硬件定时器实现精准任务调度:一个LED呼吸灯与数据采集的案例

用RT-Thread硬件定时器实现精准任务调度&#xff1a;一个LED呼吸灯与数据采集的案例 在嵌入式开发中&#xff0c;任务调度和时间管理是核心挑战之一。RT-Thread作为一款优秀的实时操作系统&#xff0c;其硬件定时器&#xff08;HWTIMER&#xff09;功能为开发者提供了高精度的时…...

远程为海外公司工作的真实体验:钱多事少但有时差——一个软件测试工程师的深度拆解

“月薪五万&#xff0c;睡到自然醒&#xff0c;在海边一边晒太阳一边测Bug。” 这是许多同行对“为海外公司远程工作”的美好想象。但当梦想照进现实&#xff0c;尤其是在我们软件测试这个领域&#xff0c;画面的颗粒度会变得极其复杂。它并非简单的“钱多事少离家近”&#xf…...

QQ空间说说备份终极指南:GetQzonehistory完整教程

QQ空间说说备份终极指南&#xff1a;GetQzonehistory完整教程 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经想要永久保存QQ空间里那些珍贵的青春回忆&#xff1f;那些承载着…...

C#从零开始学习笔记---第九天

又是新的一天&#xff0c;欢迎大家继续查看我的学习笔记&#xff0c;这两天确实状态一般&#xff0c;今天内容我们也不记录太多&#xff0c;主要分为两大块&#xff0c;第一块是对之前提到过的数组进行一个复习&#xff0c;第二块就是在记录一下集合和哈希表的一些内容。话不多…...

《技术底稿 40》别只看文件大小:一次 “反常 OOM” 背后的内存缓存重构

一、反常现象&#xff1a;小文件报错&#xff0c;大文件反倒正常业务场景需批量导入文献类 ZIP 压缩包。本次测试出现诡异问题&#xff1a;一个 282MB 的 ZIP 包导入时&#xff0c;直接抛出 java.lang.OutOfMemoryError: Java heap space 堆内存溢出。当前服务 JVM 堆内存固定配…...

这些坑我已经帮你踩过了,Vue3+TS 实战开发必看!

这些坑我已经帮你踩过了&#xff0c;Vue3TS 实战开发必看&#xff01; 上周五临下班&#xff0c;产品突然甩过来一个“紧急需求”&#xff1a;把核心的数据看板模块用 Vue3 TypeScript 重构&#xff0c;周一早会直接给老板演示。我当时的内心是极度自信的&#xff1a;“Vue3 组…...

零经验想投运营?3分钟AI生成高匹配简历,告别海投无效!

“我一个零经验小白&#xff0c;简历怎么写才能打动运营岗HR啊&#xff1f;&#xff01;&#xff01;” “海投了快100份简历&#xff0c;一个面试都没有&#xff0c;我是不是不适合运营&#xff1f;” 相信这是大部分想转行或者刚毕业&#xff0c;对运营岗有点心动但完全没经…...