首批通过分布式安全可靠测评,为关键业务系统打造
ob_default_lob_inrow_threshold
更新时间:2026-03-12 15:35:30
说明
该变量从 V4.2.1 BP2 版本开始引入。
功能描述
ob_default_lob_inrow_threshold 用于指定建表时,表中 LOB 字段的默认行内存储阈值。
功能适用性
该变量仅适用于 OceanBase 数据库 MySQL 模式。
权限要求
查询变量
Global 级别
sys租户和所有用户租户均可以使用SHOW VARIABLES语句或视图information_schema.GLOBAL_VARIABLES(MySQL 模式)查看 Global 系统变量的值。Session 级别
sys租户和所有用户租户均可以使用SHOW VARIABLES语句或视图information_schema.SESSION_VARIABLES(MySQL 模式)查看 Session 系统变量的值。
修改变量
Global 生效
sys租户可以直接修改 Global 系统变量的值。MySQL 用户租户需要拥有
SUPER或ALTER SYSTEM权限才能修改 Global 系统变量的值。
Session 生效
sys租户和所有用户租户均可以直接修改本租户的 Session 系统变量的值。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | Int |
| 默认值 | 8192,单位为字节
说明该变量从 V4.3.2 版本开始默认值由 4096 调整为 8192。 |
| 取值范围 | [0, 0.75M] 取值为 0,表示禁止 INROW。 |
| 生效范围 |
|
| 是否可修改 | 是,支持通过 SET 或 ALTER SESSION SET 语句修改。 |
使用说明
ob_default_lob_inrow_threshold 是一个 Global 级别系统变量,实际影响的是新建表(已有表不受影响)的表级属性 lob_inrow_threshold 的取值。修改系统变量 ob_default_lob_inrow_threshold 会影响新建表的 LOB 列行内行外存储阈值,修改表级属性 lob_inrow_threshold 则会影响该表的行内行外存储。建表时若没有指定 lob_inrow_threshold``,则会取系统变量ob_default_lob_inrow_threshold 的值作为该表的 LOB 列行内行外存储的阈值。
配置示例
没有指定 LOB_INROW_THRESHOLD 的示例如下:
将
ob_default_lob_inrow_threshold的值设置为 40960 字节。Session 级别下设置
obclient> SET ob_default_lob_inrow_threshold = 40960;Global 级别下设置
obclient> SET GLOBAL ob_default_lob_inrow_threshold = 40960;
创建表
t,此时没有指定LOB_INROW_THRESHOLD。obclient> CREATE TABLE t(pk int, data text);那么就会使用系统变量
ob_default_lob_inrow_threshold的值作为阈值,即表t的 INROW 阈值为 40960 字节。