MySql事务原理

MySQL执行过程
先根据sql语句,如果该Sql不关联唯一索引(在执行insert、update、delete)不涉及唯一索引,写多读少的业务(账单类、日志类)mysql会把sql 维护到 change buffer 池中,把changge buffer 加载到redo log buffer ,持久化到磁盘(顺序写-快)redo log,后台merge过程,待需要读时,或者必须唯一索引更新时,会把从磁盘读取到 buffer pool 中的数据结合change buffer ,提交事务,返回结果。
根据sql语句,如果该Sql关联唯一索引,则先从磁盘IO把数据加载到 buffer pool中,加载时有一个预读,按页加载,buffer pool 维护了一个新生代+老年代(63:37)命中的加载到新生代头部,预读页的数据加载到老年代的头部,预读中有数据被多于一次访问,预读成功,且在老年代待超过时间T(默认1s),说明该数据符合热点要求的数据,被加载到新生代的头部,没有被二次访问到的预读数据,会在老年代短时间被淘汰掉,解决预读失效,预防了缓冲池污染问题(新生代热点数据全部被替代)。如果新生代扩展到100%,转化为一般的LUR,,在老年代被淘汰(比新生代淘汰速度快)。
在这里插入图片描述
Mysql事务原理:
http://www.imooc.com/article/17290?block_id=tuijian_wz
慕课网讲解:
buffer pool
https://mp.weixin.qq.com/s/nA6UHBh87U774vu4VvGhyw
https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651962467&idx=1&sn=899ea157b0fc6f849ec80a4d055a309b&chksm=bd2d09bf8a5a80a972a2e16a190ed7dffe03f89015ead707bdfcc5aeb8388fb278f397c125f1&scene=27%23wechat_redirect

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值