大部分应用中性能的瓶颈是磁盘 IO,所以新型数据库的设计都以降低磁盘 IO 为主要设计目标。压缩可减少 I/O 的时间,提升性能,8a 也不例外。压缩是提高性能的主要技术之一,8a 并行执行器已经能够从上层并行调度解压,因此使解压的适用性得到了很大的提升,很多场景下(尤其是针对超大数据量的场景),使用压缩数据的方式都可以获得比不压缩更好的性能。
gbase_compression_num_method=<num_method>
gbase_compression_str_method=<str_method>
表级压缩方式:COMPRESS(<num_method>,<str_method>)
列级 int 型压缩方式选项:0,1,5
列级 varchar 型压缩方式选项:0,3,5
表级组合压缩方式为:00、13、55
gbase_compress_method=<’method’>
gbase_compress_level=<level>
表级压缩方式:COMPRESS(<’method’>,<level>)
method 指定压缩算法,不设置时 show variables 显示“NO Setting”。可设置的值
如下,值不区分大小写:
Nozip:没有压缩
HighZ:高压缩比
RapidZ:快速压缩
NewRapidZ:
STDZ:
level指定压缩级别,0~9,1 压缩比最低,压缩/解压缩速度最快,9 反之。不设置时show variables 显示为 0。默认级别为 0,针对不同的原型算法有不同的选取。
95 版本的压缩算法向上兼容 86 版本使用方式,当 gbase_compression_num_method和gbase_compression_str_method参数与gbase_compress_method和gbase_compress_level 同时存在时,以 gbase_compress_method 和gbase_compress_level 参数配置为准。映射关系如下:
新版压缩算法 | 旧版压缩算法 |
---|---|
gbase_compress_method=’NoZip’ gbase_compress_level=0 | gbase_compression_str_method=0 gbase_compression_num_method=0 |
gbase_compress_method=’RapidZ’ gbase_compress_level=0 | gbase_compression_str_method=5 gbase_compression_num_method=5 |
gbase_compress_method=’HighZ’ gbase_compress_level=0 | gbase_compression_str_method=3 gbase_compression_num_method=1 |
COMPRESS(’NoZip’,0) | COMPRESS(0,0) |
COMPRESS(’RapidZ’,0) | COMPRESS(5,5) |
COMPRESS(’HighZ’,0) | COMPRESS(1,3) |
31 压缩优势是压缩比高,比 55 压缩高一倍压缩比,但是执行效率一般,如果对存储空间要求高,对性能不太要求时,建议使用 31 压缩;如果对存储空间要求不高,对性能要求高时,建议使用 55 压缩。