Innodb执行sql的过程

重做日志redo log
事务开始之后就会产生redo log,先写入到缓存buffer中,事务结束(或者是通过定时任务将缓存刷新到日志文件)后落盘到redo log中,确保事务的持久性

回滚日志undo log
保证事务发生之前的数据一个版本,主要用于回滚,保证数据的原子性

二进制日志binlog
内容包括sql语句和sql的反向语句,主要用于主从复制,以及基于时间点的数据还原。在事务提交的时候,一次性将事务的sql记录到binlog中

redolog主要是事务的持久性,binlog只要是数据还原
redoslog内容是物理日志,数据页面的修改后的物理记录,binlog是逻辑日志,sql语句

首先 InnoDB 完成一次更新操作的具体步骤:
1、开启事务
2、查询待更新的记录到内存,并加 X 锁
3、记录 undo log 到内存buffer
4、记录 redo log 到内存buffer
5、更改内存中的数据记录
6、提交事务,触发 redo log 刷盘记录 bin log
7、事务结束

未经允许不得转载:任鹏个人博客 » Innodb执行sql的过程

赞 (1) 打赏

评论 0

取消
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏