星海

数据库 · 单选题 · 第 38 题

计算机基础面试八股 · 第 38 题

InnoDB 的 MVCC 中,快照读判断某个版本的记录对当前事务是否可见,依据的是?

  1. Aredo log 中记录的日志序列号 LSN,序号小于当前事务开始时 LSN 的版本才可见
  2. BRead View 与记录上的事务 ID(trx_id),沿 undo log 版本链找到可见的版本
  3. Cbinlog 中的文件名与位点信息,只有已经写入 binlog 的版本才对事务可见
  4. D当前记录上是否有其他事务持有行锁,有锁就等待,没有锁就读取最新版本

答案

B B. Read View 与记录上的事务 ID(trx_id),沿 undo log 版本链找到可见的版本

解析

每行记录有隐藏的 trx_id 和回滚指针。Read View 记录了生成时的活跃事务列表、最小活跃事务 ID 和下一个待分配的事务 ID,据此判断某个版本是否可见;不可见就顺着 undo log 找更早的版本。快照读不加锁,这正是 MVCC 提高并发的关键。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。