innodb有延迟块清除吗
begin
DML
....
sleep(N) -- 等待对应的脏数据和redo都刷新到磁盘,Q1: 此时脏数据行的trx_id是否被更新?
commit -- Q2:需不需要从磁盘把脏数据重新读取到buffer pool以更新其trx_id?
or
rollback -- Q3:需不需要从磁盘把脏数据重新读取到buffer pool以更新其trx_id和bit mask?
个人猜测:
脏数据被标记了新的trx_id刷新到磁盘,commit时无需二次读取,只有在rollback时才这样操作;比较rollback应该是比较少发生的,这样可以最大化处理效率,同时减少commit的延迟等待时间
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。