美文网首页
一条SQL语句的执行过程

一条SQL语句的执行过程

作者: NLper小白 | 来源:发表于2021-11-30 17:19 被阅读0次

    一条更新SQL语句从客户端发起到服务端执行流程大致如下:

    1. 建立连接:客户端发送请求到服务端
    2. 查询缓存:对SQL更新的表,让其所对应的的查询缓存失效
    3. 解析器:对SQL语句进行语法分析,校验关键字是否合规
    4. SQL优化:选择索引,生成执行计划
    5. 执行引擎:执行引擎去存储引擎查询需要更新的数据
    6. 存储引擎:判断当前缓冲池中是否存在需要更新的数据,存在就直接返回,否则去磁盘加载数据
    7. 调用:执行引擎调用存储引擎API去更新数据
    8. 存储引擎执行:更新数据,写入undo_log、redo_log信息
    9. 写binlog,执行引擎写binlog,提交事务,流程结束。
    

    redo_log

    重做日志,InnoDB存储引擎特有的,保证事务的原子性和持久性,通过redo_log可以恢复更新的数据
    

    udno_log

    保证事务的一致性,SQL语句的逆向操作,在事务需要进行回滚时调用
    

    binlog

    二进制日志,记录了改变数据库的SQL语句。不同于redo_log是物理日志,binlog和undo_log都属于逻辑日志逻辑日志,

    相关文章

      网友评论

          本文标题:一条SQL语句的执行过程

          本文链接:https://www.haomeiwen.com/subject/fwmdxrtx.html