关于 OceanBase 的事务隔离级别及并发控制机制,以下说法正确的是?单选题
A. OceanBase 默认的隔离级别是 READ COMMITTED,在该隔离级别下不会出现不可重复读现象。
B. 在 REPEATABLE READ 隔离级别下,OceanBase 通过间隙锁(Gap Lock)完全避免了幻读(Phantom Read)。
C. OceanBase 使用多版本并发控制(MVCC)结合行锁实现隔离级别,读操作不阻塞写操作,写操作不阻塞读操作。
D. 在 SERIALIZABLE 隔离级别下,OceanBase 对所有访问的行都加共享读锁,直至事务结束才释放,因此并发性能急剧下降。
2 个赞
解析 :
OceanBase 采用 MVCC 机制,每行数据有多个版本,读操作读取事务开始时的快照版本,因此读不阻塞写、写不阻塞读。这是其能够支撑高并发混合负载的关键设计。
-
A 错误 :OceanBase 默认隔离级别为 READ COMMITTED ,但该级别下会出现不可重复读 (同一事务内两次读取同一行数据可能得到不同结果)。
-
B 错误 :在 REPEATABLE READ 级别下,OceanBase 不使用间隙锁 ,而是通过 MVCC + 快照读 方式避免幻读(仅针对快照读,当前读仍可能出现幻读)。MySQL InnoDB 的性能问题常见原因正是间隙锁;OceanBase 的设计更轻量。
-
D 错误 :SERIALIZABLE 级别在 OceanBase 中实现依赖加锁机制,但并非对所有行加共享读锁 ,而是通过谓词锁或更强的 MVCC 约束保证串行化,虽比 RR 低效,但仍优于传统悲观锁模式,且不会“急剧下降”到不可用状态 。
没落的星辰
#4
选择C
正确:OceanBase 使用 MVCC(多版本并发控制)+ 行锁实现隔离级别,读操作基于快照不阻塞写,写操作持有行锁不阻塞读,实现读写不阻塞。
OceanBase 的核心并发控制是 MVCC 优先,行锁仅用于写冲突处理,因此读写不阻塞是其关键特性。
C OceanBase 采用 MVCC + 行锁 实现并发控制:
1 个赞