Mysql事务

1.buffer pool mysql最大的缓冲区,page都放在里面默认大小128M,相当于缓存
2.page进来后先存入free链表
3.free链表记录buffer pool 哪些位置是空的指针
4.buffer pool 放不下的时候会将最近最少的控制块删了用的是lru
5.Lru链表最前面的节点就是最常用的节点
6.换血的意思用不常用的数据替换了buffer pool 里面的热数据
7.lru链表又分为热数据和冷数据,如下图前面5个是热的后面3个是冷
在这里插入图片描述

9.当冷数据在大于1秒的时间又再次被访问,就会升级为热数据
10.管理脏页的链表也就是被update的页,mysql会定时对脏页扫描然后持久化磁盘

  1. update执行流程
    1.修改buffer pool页里面的数据
    2.生成一个binLog对象
    3.生成一个redolog对象
    4.生成一个undoLog对象(记录回滚sql)
    5.事务提交持久化redoLog
    6.后台定时任务持久化脏页
    11.mysql启动后会自动为redoLog占据两个空间
    update的数据会暂时存在redoLog中,空间满了后才持久化
    12.redolog变大,mysql宕机了,那么恢复就慢,但是mysql运行变快
    13.RedoLog其实记录的是页的位置
    在这里插入图片描述

15.双写缓冲区的作用在于,一般的新数据是在内存中的,它是通过操作系统持久化到硬盘,如果操作系统挂了 内存中的新数据也没了,那么此时 磁盘中的老数据是无法根据redoLog进行数据恢复的,但是如果新数据已经被先写到双写缓冲区了,那么就算操作系统挂了,此时因为双写缓冲区已经写入新数据并且,双写缓冲区隶属于磁盘,所以就算是双写缓冲区在写入到磁盘的过程中出问题了,他也可以根据redoLog恢复数据。
16.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值