---
title: 常见的 OceanBase 数据库 compaction 参数-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于常见的 OceanBase 数据库 compaction 参数相关的常见问题和使用技巧，帮助您快速解决常见的 OceanBase 数据库 compaction 参数的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 常见的 OceanBase 数据库 compaction 参数

更新时间：2026-06-15 09:16

适用版本： V1.4.x、V2.1.x、V2.2.x、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：TechNote  

本文介绍常见的 OceanBase 数据库 compaction 参数。

- `merge_thread_count`：合并工作线程数，当设置为 0 时使用默认值 10。此配置项在 OceanBase 数据库 V4.x 版本已废弃，使用配置项 `compaction_low_thread_score` 来设置低优先级 Compaction 的工作线程数。
 - `minor_freeze_times`：指定多少次冻结后触发大版本合并。此配置项在 OceanBase 数据库 V4.x 版本已废弃，由租户级配置项 `major_compact_trigger` 来控制租户冻结多少次后触发合并。
 - `major_compact_trigger`：`minor_freeze_times` 的同义参数，未来慢慢替代 `minor_freeze_times`。
 - `minor_compact_trigger`：指定最大存在的 L0/L1 转储生成的 mini sstable 个数。当 partition 的转储 sstable 个数超过`minor_compact_trigger` 后开始触发 L0 或者 L1 compaction；当设置为 0 时，转储生成的 mini sstable 会尽快合到 minor sstable 中。
 - `major_freeze_duty_time`：每日合并定时时间。
 - `max_kept_major_version_number`：存储保留合并大版本数。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `_enable_parallel_minor_merge`：租户级并行转储配置项，设置时需要指定对应的租户。
 - `freeze_trigger_percentage`：租户触发冻结的内存比例（memstore的使用比例），大多数情况下建议使用默认值，设置值小的话会加快转储/合并的频率，对于写入查询压力较大的场景建议设置的小一些，对于写入查询压力较小的场景可以设置的大一些。OceanBase 数据库 V3.2 及之前版本默认值为 70，OceanBase 数据库 V4.x 版本默认值为 20。
 - `memstore_limit_percentage`：设置租户使用 memstore 的内存占其总可用内存的百分比，默认值 50。
 - `_minor_compaction_amplification_factor`：L1 compaction 的写放大系数比例，当选择转储的 mini sstables 与 minor sstable 总行数比值超过该写放大系数时，选择将多个 mini 和 minor 合成一个 minor（minor merge），否则将多个 mini 合成一个 mini（mini minor merge），默认为 25。
 - `merge_stat_sampling_ratio`：合并时统计信息采样率，当设置为 0 时则关闭统计信息采集。默认值为 100。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `builtin_db_data_verify_cycle`：宏块巡检周期参数，当设置为 0 时关闭巡检，默认值 20。
 - `micro_block_merge_verify_level`：微块校验等级设置（非研发环境不能使用）。

     - 0：表示不做校验。
     - 1：表示验证编码算法，将读取编码后的微块以确保数据正确。
     - 2：表示验证编码和压缩算法，除编码验证外，还将对压缩块进行解压缩以确保数据正确。
     - 3：表示验证编码，压缩算法和丢失写保护。
 - `_minor_compaction_interval`：mini minor merge 或 minor merge 的延迟调度时间，默认为 0。此配置项在 OceanBase 数据库 V4.x 版本未使用。
 - `minor_merge_concurrency`：mini minor merge / minor merge 工作线程数，当设置为 0 时使用默认值 10。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `_mini_merge_concurrency`： mini merge（转储）工作线程数，默认为 5。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `minor_warm_up_duration_time`：转储 sstable 预热时间，预热时间内 memtable 不能释放。转储完成后到预热时间内，所有对应 partition 的流量会逐步从 memtable 过渡到 sstable。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `_ob_minor_merge_schedule_interval`：转储任务扫描调度线程的轮询调度时间间隔，默认 20s。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `_ob_sys_high_load_per_cpu_threshold`：根据系统 load 控制合并线程降速，当平均每 cpu 系统负载 (load/cpu_count) 超过指定阈值时，开始对合并降速，具体做法就是停掉部分合并线程，但是至少会保留一个工作线程。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `_ob_queuing_fast_freeze_min_count`：指定该 queuing 表删除达到最小行数后开始触发冻结，默认值为 500000。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `_ob_queuing_fast_freeze_min_threshold`：指定该 queuing 表删除行达到基线 sstable 指定比例后开始触发冻结，默认值为 10。此配置项在 OceanBase 数据库 V4.x 版本已废弃。
 - `default_progressive_merge_num`：设置新建一张表时默认的渐进合并次数。可以通过表级属性 progressive_merge_num 控制合并行为，创建表时未指定 progressive_merge_num 则被设置为该值。

     - progressive num = 0 时，表示使用默认值 100。
     - progressive num = 1 时，表示强制执行全量合并，不执行渐进合并。
     - progressive num = X 时，表示 X 轮合并重写完全部数据，每轮合并重写 1/X。
 - `enable_major_freeze`：是否允许发起集群/租户级合并。
 - `_minor_deferred_gc_level`：转储 sstable 延迟回收级别。

     - 0：延迟回收 L0 sstable。
     - 1: 延迟回收所有转储 sstable。
 - `minor_deferred_gc_time`：转储 sstable 延迟回收时间，即在 compaction 完成后，再过了 gc 时间才会真正回收相应 sstable。
 - `_follower_replica_merge_level`：D 副本合并策略。

     - 0: D 副本本地不做 L1 或 L0 compaction 和合并。
     - 1: D 副本本地不做 major，但做 L1 或 L0 compaction。
     - 2: D 副本本地做 major，但不做 L1 或 L0 compaction。
     - 3: D 副本本地做 major，同时也做 L1 或 L0 compaction。
 - `_enable_parallel_minor_merge `：租户级并行转储配置项。当开启该配置项后，该租户相关表会走并行转储路径，并行转储任务的拆分方式和并行合并类似，都通过表上的 tablet_size 来控制。
 - `_ob_queuing_fast_freeze_min_count`：用来控制该表删除达到指定范围行数时开始触发冻结，租户级配置项，默认值是 500000，取值范围 10000~100000000。
 - `_ob_queuing_fast_freeze_min_threshold`：用来控制该表删除行达到基线 sstable 指定比例后开始触发冻结，租户级配置项，默认值 10， 取值范围 0~100。

  ```shell
  obclient > ALTER SYSTEM SET _enable_parallel_minor_merge = true tenant = 'test';

  ```

**OceanBase 数据库 V4.x 版本新增的参数**

- `compaction_low_thread_score`：低优先级 compaction(major) 线程权重分数，配置项默认为 0，表示使用内部默认值 6。
 - `compaction_mid_thread_score`：中优先级 compaction(minor) 线程权重分数，配置项默认为 0，表示使用内部默认值 6。
 - `compaction_high_thread_score`：高优先级 compaction(mini) 线程权重分数，配置项默认为 0，表示使用内部默认值 6。
 - `ob_compaction_schedule_interval`：转储/合并任务扫描调度线程的轮询调度时间间隔，默认 120s。
 - `_enable_adaptive_compaction`：开启或关闭自适应 compaction 调度。默认为 true。
 - `compaction_dag_cnt_limit`：compaction dag 队列的上限，对于百万分区场景需要调整。
 - `compaction_schedule_tablet_batch_cnt`：后台遍历线程每次遍历的分区数上限。
 - `dag_scheduler_thread_score`：DagScheduler 整体的线程权重分数。

## 适用版本

OceanBase 数据库所有版本。

上一篇

[OceanBase 数据库合并的常见问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000112)

下一篇

[compaction_diagnose 视图使用指南](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209906) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
