【单选题】OceanBase 中 truncate table,下面说法正确的是()
A. truncate 会记录大量 undo 日志
B. truncate 属于 DDL,快速回收分区,不逐行删除
C. truncate 可以回滚
D. truncate 会触发全表扫描
答案:B
解析
- A 错误:truncate 直接回收分区,几乎不生成 undo 日志;delete 逐行删除才会产生大量 undo。
- B 正确:truncate 是 DDL 操作,不会逐行删除数据,直接回收分区资源,速度很快。
- C 错误:OceanBase 中 DDL 操作不能回滚,truncate 执行完成数据就被清除。
- D 错误:truncate 不需要扫描表数据,直接修改元数据回收分区;delete 才会可能触发全表扫描。
小结:
delete:DML,逐行删,产生 undo,可以回滚;
truncate:DDL,回收分区,几乎无 undo,不可回滚,速度极快。