题目: 关于只读事务,以下哪项说法是正确的?
A. 如果没有显式指定 READ ONLY,OB 就不会把它当成只读事务。
B. 只读事务中可以使用 SELECT … FOR UPDATE。
C. 为了可维护性,OB 对所有事务都创建事务上下文。
D. 对只读事务执行 COMMIT 是空操作,不会报错。
题目: 关于只读事务,以下哪项说法是正确的?
A. 如果没有显式指定 READ ONLY,OB 就不会把它当成只读事务。
B. 只读事务中可以使用 SELECT … FOR UPDATE。
C. 为了可维护性,OB 对所有事务都创建事务上下文。
D. 对只读事务执行 COMMIT 是空操作,不会报错。
有人知道吗?
选择D
D 正确
只读事务无数据修改,执行COMMIT仅标记事务结束,属于空操作,语法合法不会报错。
其余选项错误
A 错误
OceanBase 可自动识别纯查询 SQL,即使不显式写READ ONLY,也会自动优化为只读事务。
B 错误
SELECT … FOR UPDATE 会加行锁、属于写操作,只读事务内禁止执行该语句。
C 错误
OB 对纯只读事务做优化,不会创建完整写事务上下文,以此减少内存开销、提升性能。
D. 对只读事务执行 COMMIT 是空操作,不会报错。
D是正确选项