【 使用环境 】 测试环境
【 OB 】
【 使用版本 】OceanBase_CE-v4.2.1.8
【问题描述】创建表 报 1118 - Row size too large
【复现路径】
表大概有 490列 ,大多类型是 LONGTEXT NULL。
减少了列个数 可以创建成功。
相同列个数 LONGTEXT 和TEXT 都不行,从类型可存储的最大长度 开始判断TEXT会占用少量字节,但更换不起作用 。
看文档行最大长度1.5M 字节 ,创建表行长度 违反限制 行长度怎么计算的?
【附件及日志】
【备注】
淇铭
#3
如果创建 以下测试表 类型都是LONGTEXT 的情况下,会报1118 - Row size too large 错误,对于LONGTEXT TEXT 类似的数据类型如何计算的长度 违反行长度1.5M字节的约束的?
CREATE TABLE rpa_plan_result12 (
pk_plan_result varchar(32),
c1 LONGTEXT NULL,
c2 LONGTEXT NULL,
c3 LONGTEXT NULL,
… 一共500多列
淇铭
#5
创建表的时候指定这个值LOB_INROW_THRESHOLD 默认是4096 也就是4k 可以调小一点 这个参数的取值范围[0, 0.75M] 0禁止使用这个参数LOB_INROW_THRESHOLD 合理设置 太小,会导致outrow存储太多,会导致性能降低
create table t(pk int, data text) LOB_INROW_THRESHOLD = 4096;