innodb如何保证修改数据文件时读写操作一致性?

来源:2-13 MySQL常用存储引擎之Innodb

烈焰卡卡

2020-02-25

老师您好,想问一个MySQL比较底层的问题。就是当一个写操作在进行时,此时刚好有一个读操作,比如说是一个全表查询,正在读取数据文件,这时候写操作实际上可能会改变B+树的结构,涉及到对数据文件进行修改的操作。

那这时候innodb是如何保证,读操作还没有进行完的情况下,写操作修改了文件,也不会影响这个读操作最终查询出来的数据?

写回答

1回答

sqlercn

2020-02-25

这涉及到innodb的redo和undo日志,在修改数据时innodb会把修改前的数据记录到undo日志中,这时如果同时有线程要查询同一数据则会读取undo日志的内容。

1
1
烈焰卡卡
非常感谢!
2020-02-25
共1条回复

MySQL提升课程 全面讲解MySQL架构设计

面面俱到讲解影响MySQL性能的各个因素,让MySQL架构了然于胸。

4434 学习 · 548 问题

查看课程