MYSQL 数据落盘

MYSQL 数据落盘

redolog undolog
redolog 是在数据库突然宕机,在重启后,系统自动根据redolog来进行数据恢复的日志

undolog 用来存储历史版本~rr rc隔离级别为什么能做到可重复读,就是因为mvcc 多版本并发控制,mvcc 就是依靠读取undolog的历史版本记录,来保证事务间的可见性,不同的版本可见性由readview算法来实现,再解释下rr rc隔离级别mvcc的区别,rc隔离级别 一次查询生成一个readview,rr隔离级别是一个事务生成一个readview,rr隔离级别解决幻读是依靠mvcc和next-key(间隙锁)

数据落盘
先参考下面的图
在这里插入图片描述
数据首先都存储在bufferpool(缓冲区),bufferpool落盘到磁盘会使用双写机制(double write),双写idb,ibdata(系统表空间,用户表空间).落盘时机通过check point点(比如bufferpool数据占用达到75%,或者数据库关闭等等),bufferpool数据存储到redolog buffer中的有redolog ,脏页数据,脏页索引,undo log页等,redolog落盘到磁盘使用force log atcommit 机制,这里有一个sync参数,值有三种012,0代表实时落盘,不论事务是否提交,每秒落盘; 1代表当事务提交后实时落盘到磁盘;2代表事务提交后,异步落盘.

猜你喜欢

转载自blog.csdn.net/weixin_44969687/article/details/114455498
今日推荐