ROW_FORMAT = COMPRESSED COMPRESSION = 'zstd_1.0' 压缩功能不生效

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】社区版本4.0.0
【问题描述】
创建表时使用了ROW_FORMAT = COMPRESSED COMPRESSION = 'zstd_1.0’这种方式,然后插入10000条数据后,analyze table xxx compute statistics for all columns size auto;之后,查看表大小,与普通表插入相同数据量之后的大小一样,压缩不生效?查看表大小使用下面的查询语句
SELECT
table_schema AS ‘数据库’,
table_name AS ‘表名’,
table_rows AS ‘记录数’,
TRUNCATE (data_length /1024/1024/1024, 2) AS ‘数据容量(GB)’,
TRUNCATE (index_length /1024/1024/1024, 2) AS ‘索引容量(GB)’
FROM
information_schema.tables
where table_schema = ‘test’
ORDER BY
data_length DESC,
index_length DESC;

【复现路径】问题出现前后相关操作
【问题现象及影响】

【附件】

1 个赞

在数据量小的情况下该表的数据可能不准

1 个赞

一亿数据量呢? 不小了吧,也不准啊,没有压缩痕迹,和不采用压缩前一摸一样,显示的是135G

1 个赞

这个表统计的数据量是压缩前的一个估算,压缩后的数据量可以通过GV$OB_SSTABLE来计算


想问下,这个compressed事什么意思,刚导完数据表占用的磁盘空间200多GB,我看隔了一天,缩减到只有9个GB了 这是为啥?

转储数据默认LZ4压缩且不做编码, 合并数据会做编码和zstd通用压缩
所以你说的现象应该是晚上集群做过自主合并, 后续版本OceanBase也会根据用户导入和查询等行为自动触发合并, 加速数据的重整