mysql——7、Innodb底层原理与Mysql日志机制深入剖析

概要

在这里插入图片描述
重要:Redo log日志,binlog log,undo log

server层

一条sql命令执行过程
客户端--------连接器【管理连接,权限校验】-----词法分析器------优化器------执行器

连接器

在这里插入图片描述

mysql分server和执行引擎

查询缓存
5.7有查询缓存,8.0没有
在这里插入图片描述

词法分析器

在这里插入图片描述

优化器

在这里插入图片描述

执行器

在这里插入图片描述

执行引擎

innodb底层原理与mysql日志机制
在这里插入图片描述
在这里插入图片描述

一条sql语句经过执行器到达执行引擎

2,mysql为了提高效率,会将常用的数据放在buffer pool中,后面查询数据的时候就不会在ibd【磁盘文件】中查询
1,要是buffer pool中没有该数据,存储引擎innodb首先会先将在ibd中含有该数据的一页数据放在buffer pool中
3,保证事务的原子性,在buffer pool中修改数据之前,会将原数据写到回滚日志中【undo log 日志】

4,在buffer pool中修改数据
5,把数据写在redo log 重做日志中【redo log为了提升速度会有一个redo log buffer pool】:意思是先把修改好的数据写到redo log buffer pool中,再有redo log buffer pool 刷到磁盘去【物理修改,记录哪里哪里需要修改】
6,准备提交事务,binlog日志写入磁盘【binlog归档日志文件,,逻辑修改】
7,写入commit标记到redo 日志里,该标记为了保证事务提交后redo log 与bin log 数据一致
8,将buffer pool数据刷到ibd磁盘中

innodb特有的:undo log , redo log
binlog 是server层的

在这里插入图片描述

redo log日志
在这里插入图片描述
在这里插入图片描述

binlog二进制归档日志

用于恢复数据,同步数据
在这里插入图片描述
5.7,默认关闭,8.0,默认开启
在这里插入图片描述

show VARIABLES like '%log_bin%';

在这里插入图片描述

binlog恢复数据

在这里插入图片描述

可以根据偏移量,时间戳来恢复数据
在这里插入图片描述
恢复数据库【删库跑路】
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值