新人来报道 多项
OceanBase MVCC 多版本机制,带来哪些效果()
A. 读操作不会阻塞写
B. 写操作不会阻塞读
C. 数据旧版本占用磁盘空间
D. 不会产生任何垃圾版本,无需回收
正确答案是 A、B、C 。
OceanBase 的 MVCC(多版本并发控制)机制通过保留数据的多个历史版本,实现了读写分离,带来了以下效果:
A. 读操作不会阻塞写 (正确)
B. 写操作不会阻塞读 (正确)MVCC 的核心优势在于实现了读写互不阻塞 。读操作(SELECT)读取的是事务开始时的快照版本(一致性视图),而写操作(UPDATE/DELETE)生成新的数据版本。两者操作不同的版本,因此不需要互相等待锁,大大提升了数据库的并发处理能力。
C. 数据旧版本占用磁盘空间 (正确)这是 MVCC 机制带来的必然代价。每次更新数据时,旧版本的数据并不会立即被物理删除,而是作为历史版本保留在内存(MemTable)和磁盘(SSTable)中。这确实会占用额外的存储空间。
D. 不会产生任何垃圾版本,无需回收 (错误)这个说法是错误的。为了控制磁盘空间不会无限增长,OceanBase 提供了后台的垃圾回收(GC)机制 。它会自动判断并清理那些没有任何事务需要访问 的、过旧的垃圾版本数据,以释放存储空间。