【单选题】OceanBase 中 `truncate table`,下面说法正确的是()

【单选题】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,不可回滚,速度极快。