首批通过分布式安全可靠测评,为关键业务系统打造
lob_enable_block_cache_threshold
更新时间:2026-06-21 10:18:17
说明
- 在 V4.3.x 版本中,该配置项从 V4.3.2 版本开始引入。
- 在 V4.2.x 版本中,该配置项从 V4.2.3 版本开始引入。
功能描述
lob_enable_block_cache_threshold 用于设置 OUTROW 存储的 LOB 查询缓存的阈值。
权限要求
查询配置项
sys租户和所有用户租户均可以使用SHOW PARAMETERS语句或视图GV$OB_PARAMETERS查询该配置项。修改配置项
sys租户和用户租户都可修改该配置项。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | CAP |
| 默认值 | 256K |
| 取值范围 | [0B, 512M] |
| 是否可修改 | 是,支持通过 ALTER SYSTEM SET 语句修改。 |
| 是否重启 OBServer 节点生效 | 否,设置后立即生效。 |
使用说明
在读取 OUTROW 存储的 LOB 数据时,如果当前读取的 LOB 数据的长度小于等于 lob_enable_block_cache_threshold,则在查询时,会缓存该 LOB 数据所在的微块,这样下次查询时,就不需要触发磁盘 IO,以提高热点数据的查询性能。特别是对于 JSON 和空间类型数据,性能提升尤为明显。
例如初始数据为 t 表。
obclient> create table t(pk int primary key, c1 text);
obclient> insert into t values(1, repeat('1', 9000);
在读该 LOB 数据时, 如果使用的 lob_enable_block_cache_threshold 配置为 8096B。由于待读取的 LOB 数据的长度的 9000B,大于 lob_enable_block_cache_threshold 的值,所以本次读取将不会触发缓存逻辑。如果将值设置为 9000B,那么在下次读取数据时就会触发缓存逻辑,如果下次读取数据时缓存没有被淘汰,就不会触发磁盘 IO。设置方式如下:
obclient> ALTER SYSTEM SET lob_enable_block_cache_threshold='9000b';
此外,如果下次查询的是同一个微块的其他 LOB 数据,也不会触发磁盘 IO,从而可以提高 OUTROW 存储 LOB 的查询性能。
配置示例
设置 OUTROW 存储的 LOB 查询缓存的长度为 4k。
obclient> ALTER SYSTEM SET lob_enable_block_cache_threshold='4K';