innodb如何保证修改数据文件时读写操作一致性?
来源:2-13 MySQL常用存储引擎之Innodb
烈焰卡卡
2020-02-25
老师您好,想问一个MySQL比较底层的问题。就是当一个写操作在进行时,此时刚好有一个读操作,比如说是一个全表查询,正在读取数据文件,这时候写操作实际上可能会改变B+树的结构,涉及到对数据文件进行修改的操作。
那这时候innodb是如何保证,读操作还没有进行完的情况下,写操作修改了文件,也不会影响这个读操作最终查询出来的数据?
写回答
1回答
-
这涉及到innodb的redo和undo日志,在修改数据时innodb会把修改前的数据记录到undo日志中,这时如果同时有线程要查询同一数据则会读取undo日志的内容。
112020-02-25
相似问题