暂无图片
innoDB中,脏页中的脏数据(未commit的数据)能否下盘?
我来答
分享
杨培瑜
2022-07-03
innoDB中,脏页中的脏数据(未commit的数据)能否下盘?
  1. 上层控制commit流程的话,innoDB中的脏页应该会存在一些被锁住的,且数据被修改过的脏数据,那么有没有可能在这期间这一页需要被刷盘?那么此时脏数据是否也会被一起刷下去?(我知道sql server是会刷下去的,且可以通过tansaction log进行undo)

2. sql server中transaction log的粒度是statement,那么innoDB中redo log的粒度是多大?transaction吗?


初来乍到,感谢各位大佬

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
大大刺猬

每次刷盘都是整个 innodb log buffer (redo)落盘的(如下SQL可以查询平均每次落盘写入多少数据),     redo log的最小数据管理单元是 log_block,  这篇文章介绍得比较详细: https://mp.weixin.qq.com/s/7u0Tmy1F_3TGBhzvBrwMWw
SQL:  select * from sys.io_global_by_wait_by_latency where event_name like '%innodb_log%'

暂无图片 评论
暂无图片 有用 0
chengang

会,脏数据也会落盘
因为redolog 是循环写的。当写满了就只有落盘继续写了。

mysql 通过mvcc undolog回滚,即使落了盘也能回滚。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏