多选:以下哪些属于 OB 慢 SQL 优化常规手段?

以下哪些属于 OB 慢 SQL 优化常规手段?()
A. 补充缺失索引
B. 优化 SQL 避免分区键函数运算
C. 拆分超大事务
D. 直接关闭集群合并

4 个赞

答案:A、B、C

选项分析

  • A. 补充缺失索引 :white_check_mark:
    这是最基础也是最有效的慢 SQL 优化手段之一。通过 EXPLAIN 查看执行计划,发现全表扫描或回表过多的情况时,补充合适的索引可以显著提升查询性能。
  • B. 优化 SQL 避免分区键函数运算 :white_check_mark:
    OceanBase 是分布式数据库,数据按分区键进行分布。如果在分区键上使用函数(如 WHERE YEAR(create_time) = 2025),会导致无法进行分区裁剪(Partition Pruning),引发全分区扫描,性能急剧下降。改写为范围条件(如 WHERE create_time >= '2025-01-01' AND create_time < '2026-01-01')即可命中分区裁剪。
  • C. 拆分超大事务 :white_check_mark:
    超大事务会带来多重问题:锁持有时间过长导致阻塞、事务日志(clog)积压、回滚段膨胀、主备同步延迟等。将大事务拆分为多个小事务是 OB 慢 SQL 和性能优化的常规手段。
  • D. 直接关闭集群合并 :x:
    合并(Major Freeze / Compaction)是 OceanBase 将增量数据(MemTable)与基线数据(SSTable)合并的关键机制。关闭合并会导致
    • 增量数据无限堆积,查询需要扫描越来越多的版本,性能持续恶化
    • 磁盘空间快速耗尽
    • 系统最终可能不可用这不是优化手段,而是严重破坏系统稳定性的操作。如果合并影响业务,正确的做法是调整合并的时间窗口、并发度或限速参数,而非直接关闭。
1 个赞

选择ABC
A. 补充缺失索引
B. 优化 SQL 避免分区键函数运算
C. 拆分超大事务