概述
在mysql开发过程中,当执行一条insert语句后,数据是如何保存到数据库的。这里将从两个角度简单的描述一下过程,希望能对大家了解mysql和面试有所帮助。
从mysql架构体系角度
我们先看下流程图:
如上图流程所示,我们从mysql架构角度描述下sql执行过程如下:
1.客户端发送请求到数据库的server端。
2.mysql server端会有链接器组件接受请求。
3.接收到请求后,会经过分析器对sql进行分析:首先进行语法分析和此法分析,如果语法有错误会返回异常,其次会生成AST抽象语法树,将语句识别成一个个的tocken。(两个开源的分析器:calcite,antlr)
4.然后会经过优化器对sql 进行优化,生成执行性能最高的执行方式。
5.执行器会将最终的sql调用执行引擎执行语句。
从执行细节角度
我们从执行细节语句是如何执行的,先看下流程图如下:

本文深入解析了MySQL中数据插入的过程,从架构层面和执行细节两个角度展开。介绍了从客户端请求到服务器解析、优化、执行的流程,并详细阐述了DML语句如何在内存中操作,涉及undoLog、redoLog、binlog的生成与作用。同时,重点讲解了redoLog的两阶段提交机制,确保数据的一致性。
最低0.47元/天 解锁文章
8268





