【多选题】关于行锁机制,以下正确的有?

关于行锁机制,以下正确的有?
A. 支持表锁和行锁,行锁互斥
B. 行锁存储在行上,获取时设置事务标记
C. 更新同一行不同列时,不同事务互相阻塞
D. 锁在事务提交/回滚时释放,SAVEPOINT回滚也可释放部分行锁

正确答案:B、C、D

A. 支持表锁和行锁,行锁互斥 — :x: 错误

OceanBase 的锁机制与传统数据库不同。根据官方文档,OceanBase 并不存在通常意义上理解的狭义行锁 (即支持读/写等多种模式的实际存在的锁结构),而是通过行上是否有活跃事务 来表现互斥。

此外,OceanBase 在 DML 层面只有行锁,没有传统意义上的表锁 (如 MySQL 的 LOCK TABLES)。虽然 (G)V$OB_LOCKS 视图中有 TM 类型的表锁,但那是 DDL 操作或 DML 操作产生的分区级锁,并非传统意义上的 DML 表锁。