GBase新闻

专注于数据库软件产品和服务,致力于成为用户最信赖的数据库产品供应商

南大通用GBase 8s数据库数据压缩策略(一)

发布时间:2025-02-28

本文将分两章(第一章)详细介绍GBase 8s的数据压缩功能,包括压缩的作用、方式、命令以及限制。在存储空间有限、需要减少数据占用空间、提高数据处理效率的情况下会用到GBase 8s数据压缩;同时推荐对不常更新的数据表、分片进行压缩。为存储空间节省和I/O效率提升提供了有效解决方案。

01 数据压缩作用

1、节省存储空间和相应成本

2、提高I/O效率

1)数据库在读取数据的时候是读取压缩后的数据

2)减少I/O节省下来的时间 > 在内存中解压缩数据所需的时间

3、提高读操作性能

4、写操作性能可能会略有下降

02 数据压缩方式

1、新表自动压缩

1)自动压缩:

CREATE TABLE cust5 ( ...) COMPRESSED

a. 自动生成数据字典

b. 自动压缩数据

light append方式

light append方式可以绕过缓冲池,进行更加快速的数据加载。

同时满足以下两个条件时会自动启用:

1.‌row table

2.no index

2、取消自动压缩:

task/admin(table uncompress)

3、重新压缩:

tash/admin(table compress)

4、控制解压分片:

task/admin(fragment compress/uncompress)

03 已存在的表压缩

1、开启数据压缩

EXECUTE FUNCTION TASK('enable compression');

2、生成数据字典压缩

execute function task('table create_dctionary', 'stdtab', 'test',‘gbasedbt');

3、整合数据空间,将未被使用的空间整合到表或分片的尾部;

execute function task('table compress repack', 'stdtab', 'test',‘gbasedbt');

4、将数据表或分片未被使用的空间还给数据库空间;

execute function task('table shrink', 'stdtab', 'test',‘gbasedbt');execute function task('fragment shrink', ‘partn');