MySQL
中等
面试题库
MySQL
中等
更新主键在 MVCC 中如何体现?为什么它本质是"删除旧记录 + 插入新记录"?
MySQL
中等
一个事务修改记录时,旧版本是何时写入 undo log 的?UPDATE 对 undo log 的写入流程是怎样的?
MySQL
困难
为什么说 InnoDB 的 MVCC 是"基于 undo log 的伪 MVCC",与 PostgreSQL 的 MVCC 有何本质区别?
MySQL
中等
MVCC 在 READ UNCOMMITTED 与 SERIALIZABLE 级别下是否生效?各是什么行为?
MySQL
困难
二级索引上是否也保存了版本信息?二级索引如何借助聚簇索引完成 MVCC 回表判断?
MySQL
中等
长事务为什么会导致 undo log 无法被 purge?如何定位持有最老 ReadView 的事务?
MySQL
困难
purge 线程是如何清理过期的 undo 版本链的?清理时机与 undo 页的复用机制是什么?
MySQL
中等
为什么 MVCC 的读是"无锁"的?它的代价是什么(undo 膨胀、purge 负担)?
MySQL
困难
MVCC 与乐观锁、悲观锁是什么关系?MVCC 属于无锁并发控制吗?
MySQL
中等
当前读(SELECT ... FOR UPDATE / UPDATE / DELETE)为什么走的是最新已提交版本而不是快照?
MySQL
中等