首批通过分布式安全可靠测评,为关键业务系统打造
undo_retention 介绍
更新时间:2026-06-12 08:51
本文主要介绍 OceanBase 数据库中的租户级变量 undo_retention。
undo_retention 是什么?
undo_retention 表示系统应保留的多版本数据范围,单位为秒,在转储时控制多版本数据的回收。默认值:1800 秒(30 分钟)。
假设在 t1 时刻设置 undo_retention = 600s 后,可以查询从 MAX(current_time - 600s, t1) 之后的多版本数据。
例如在 5 点设置 undo_retention = 3600s,在 5 点 30 分可以查询 5 点后的多版本数据,在 7 点可以查询 6 点之后的多版本数据,在 8 点可以查询 7 点后的多版本数据。
undo_retention 设置得过大有什么影响?
最直观的影响是会导致多版本数据增多。
可能的间接影响:
多版本数据增多 -> SSTable 数据量变大/数量变多 -> 导致 Minor Merge 变慢 -> SSTable 数量回收慢 -> Table Store 数组爆掉 -> 影响转储 -> 影响合并。
多版本数据增多 -> SSTable 数据量变大 -> 查询时定位 RowKey 变慢 -> 查询变慢。
适用版本
OceanBase 数据库所有版本。