• 全量合并:将静态数据全部读出并和动态数据合并为最终的静态数据。合并时间长,耗费 IO 和 CPU。
  • 渐进合并:每次全量合并一部分,若干轮次后整体数据被重写一遍。

此外,合并也可以对集群的每个 Zone 进行轮转合并,保证没有合并的 Zone 可以完全无任何性能影响的对外提供服务。

合并相关的配置项如下表所示,您可以根据业务需要进行配置。

合并的状态可以通过内部表 来查看,该状态可以表示集群的状态和各个 Zone 的状态。状态有以下 4 种:

  • IDLE:表示未进行合并
  • MERGING:表示正在进行合并
  • TIMEOUT:表示合并超时(但是合并不会暂停,仍然继续,仅设置超时标志)

OceanBase 不是实时将小部分数据刷盘的,而是通过合并的方式集中对数据进行刷盘,因此可以采用压缩的方式来写入磁盘,此时磁盘的空间利用率得到节约。压缩算法和功能可以根据实际情况选择高压缩率但是耗费更多 CPU 的方式,也可以选择普通的压缩方式。

如果希望对单独的表进行特别的压缩算法选择,可以通过在建表时指定压缩算法。