GBase新闻
南大通用GBase 8s数据库数据压缩策略(一)
本文将分两章(第一章)详细介绍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');