首页 > 数据库 >谈一谈一条SQL的查询、更新语句究竟是如何执行的?

谈一谈一条SQL的查询、更新语句究竟是如何执行的?

时间:2024-07-26 23:30:03浏览次数:17  
标签:语句 谈一谈 log 粉板 记录 引擎 SQL 日志 redo

文章目录

本篇文章是基于《MySQL45讲》来写的个人理解与感悟。

理解

先看下图:

上一篇文章我们讨论了一条SQL查询语句的执行流程,并介绍了执行过程中涉及的处理模块。

回顾一下:

大体来说,MySQL可以分为Server层存储引擎层两部分。就是对应着图中的两个圈。

server层包含查询缓存、分析器、优化器、执行器等,以及及所有的内置函数(如日期、时间…)所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

存储引擎层负责数据的存储和提取,而存储引擎架构模式是插件式的,有很多种,比如持InnoDB、MyISAM、Memory等,这也就意味着也就是说不同存储引擎共用一个server层

即,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。

如果有不太清楚的小伙伴可以去下面的文章进行阅读,因为执行和更新语句的流程其实差别不是特别大,所以先去了解执行流程之后,再来看本篇文章,那么就很清晰易懂了!

上篇文章链接在下面

标签:语句,谈一谈,log,粉板,记录,引擎,SQL,日志,redo
From: https://blog.csdn.net/WLKQNYJY_SHT/article/details/140579463

相关文章

  • MySQL大框架总结
    1.DDL,DML,DQL,DCL的区别(由于DCL是关乎用户的,以下内容重点讲述数据库,表与数据的操作,所以对DCL不详细赘述)DDLDMLDQLDCL中文/英文数据库定义语言datadefinitionlanguage数据库操作语言datamanipulationlanguage数据库查询语言dataquerylanguage数据......
  • SQL数据库表 多对多关系设计--省去链表的尝试
     概述 之前遇到一个MES需求,需要创建一个基础资料表"人员信息表",用于其它业务的人员信息关连,因为这些人员并非系统登录帐号,所以单独进行维护。人员表涉及到字段包括:ID,工号,姓名,所属工序,所属职称,所属车间。其中,所属工序、所属职称、所属车间为多选。例:一位人员,比如"班长......
  • tpcc压力测试mysql和 ab压力测试云服务器
     mysql性能测试工具——tpcc-mysql在centos7.9上安装的下载源码包,解压安装#tarxftpcc-mysql-src.tar#cdtpcc-mysql/src#yum installgcc mysql-devel -y#make会生成两个二进制工具tpcc_load(提供初始化数据的功能)和tpcc_start(进行压力测试)[root@nfs-......
  • kettle从入门到精通 第八十一课 ETL之kettle kettle中的json对象字段写入postgresql中
    1、上一节可讲解了如何将json数据写入pg数据库表中的json字段,虽然实现了效果,但若客户继续使用表输出步骤则仍然无法解决问题。正确的的解决方式是设置数据库连接参数stringtype=unspecified2、stringtype=unspecified参数的作用:当设置为 unspecified 时,pgJDBC驱动将根据数......
  • mysql8下创建用户远程登陆权限
    在MySQL8中,创建用户并给予远程登陆权限是一个常见的操作,特别是在搭建数据库服务器时。本文将介绍如何在MySQL8下创建用户并配置远程登陆权限。1.登录MySQL首先,我们需要登录到MySQL数据库服务器。可以通过终端或者MySQLWorkbench等工具来连接到MySQL。mysql-uroot-p输入......
  • MySQL基础知识分享(一)
    写在前面大家好,不知道前面的20题大家写的怎么样,前面分享的20题是SQL中查询的基础题型,这部分被称为DQL部分,是每个学习MySQL必须要学会的部分,下面就让我来介绍MySQL中的其他部分。回顾DQL部分先介绍一下sql语句的语法和执行顺序(序号代表顺序由1~9):select查询列表(7)from......
  • kettle从入门到精通 第八十课 ETL之kettle kettle中的json对象字段写入postgresql中的
    场景:源数据库表为mysql的其中有json字段,通过kettle查询出来插入到目标数据库postgresql中,对应的表中也有json字段。。但是报错,提示kettle查询出来是varchar的的字段,无法插入到目标数据库中。1、创建测试表。CREATETABLEt3(idint,nameJSON);2、测试mysql......
  • C语言大师之路:从零到王者/新手入门(3)选择语句
    序(一些闲话)我希望我的语言不要像专业书那样让人眼花缭乱,所以当我解释语法时,我会尽量避免使用太多专业术语,让说明更容易理解。我会用通俗易懂的语言来解释,而不是像专业书籍那样让人感到困惑。本人计划通过文章分享C语言的核心知识点和学习心得。鉴于仍处于学习阶段,文章中可......
  • C语言大师之路:从零到王者/新手入门(4)循环语句
    序(一些闲话)我希望我的语言不要像专业书那样让人眼花缭乱,所以当我解释语法时,我会尽量避免使用太多专业术语,让说明更容易理解。我会用通俗易懂的语言来解释,而不是像专业书籍那样让人感到困惑。本人计划通过文章分享C语言的核心知识点和学习心得。鉴于仍处于学习阶段,文章中可......
  • Ubuntu24.04 安装MySQL8.0.36 并配置Navicat远程连接
    1.更新系统和软件源sudoaptupdate&&sudoaptupgrade2.安装mysqlsudoaptinstallmysql-server#也可以指定版本如sudoaptinstallmysql-server-8.0.363.查看是否安装成功mysql-V4.启动服务#启动服务sudoservicemysqlstartsudoservicemysqlstop#......