星海

数据库 · 单选题 · 第 39 题

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

InnoDB 在读已提交(RC)和可重复读(RR)下生成 Read View 的时机有什么区别?

  1. ARC 下每次快照读都新建 Read View;RR 下事务第一次快照读时生成,之后一直复用
  2. BRC 下事务第一次快照读时生成并复用;RR 下每次快照读都重新生成一个 Read View
  3. C两种级别都在事务的 BEGIN 语句执行时立即生成,之后整个事务期间不会变化
  4. D两种级别都不使用 Read View,而是在每次读取时对目标行加共享锁来保证可见性

答案

A A. RC 下每次快照读都新建 Read View;RR 下事务第一次快照读时生成,之后一直复用

解析

RC 每次读都拿最新的已提交快照,所以同一事务两次读可能不同,即不可重复读;RR 复用同一个 Read View,结果保持一致。BEGIN 时并不会立即生成 Read View,要等第一条快照读;START TRANSACTION WITH CONSISTENT SNAPSHOT 才会立刻生成。

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