暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE数据库功能分享之压缩方式

VV_刺头王 2022-01-18
2094

       如果数据库需要从硬盘中获得数据,那么数据的I/O操作是数据库的瓶颈。所以需要对数据进行压缩。数据压缩可以降低数据存储空间占用,通过合适的参数配置可很好的控制压缩比(影响 I/O 时间)和解压速度之间的关系,提高查询性能。

       GBASE数据库的数据都是以压缩的形式存放在磁盘上,这样做主要有两个好处:减少存储空间占用;减少I/O提高整体性能。并且GBASE数据库按列存储,同列数据的特征相似使用压缩后会有更显著的压缩比,相应的性能提升也就更明显。

      下面介绍下GBASE数据库的压缩方式:

1、压缩配置:配置方式包括全局配置参数(通过修改配置文件)以及DDL语法支持,用户可以在建表时候指定压缩方式。

a、全局压缩

通过配置文件配置, $GBASE_BASE/config/gbase_8a_gbase.cnf 修改如下参数

gbase_compress_method=<’method’>

gbase_compress_level=<level>

method:指定压缩算法。Nozip:没有压缩,HighZ:高压缩比,RapidZ:快速压缩。level指定压缩级别,0~9,1 压缩比最低,压缩/解压缩速度最快,9 反之

b、表级、列级压缩,建表时通过COMPRESS(<’method’>,<level>)指定

上述压缩方式优先级分别是列级>表级>全局级,也就是列级压缩覆盖表级压缩,表级压缩覆盖全局级压缩。

设置全局级数据压缩模式时所有数据节点的压缩参数应配置一致。

2、使用方法

a、全局压缩,修改配置文件即可,修改完需要重启服务生效。

b、表级压缩:

1) 创建表时指定压缩

语法格式 :CREATE TABLE .... COMPRESS (<’method’>,<level>);

示例:

gbase> CREATE TABLE t1 (a int, b varchar(10)) COMPRESS('rapidz',5);

Query OK, 0 rows affected (Elapsed: 00:00:00.12)

gbase> SHOW CREATE TABLE t1\G

*************************** 1. row ***************************

Table: t1

Create Table: CREATE TABLE "t1" (

"a" int(11) DEFAULT NULL,

"b" varchar(10) DEFAULT NULL

) COMPRESS('RapidZ', 5) ENGINE=EXPRESS DEFAULT CHARSET=utf8

TABLESPACE='sys_tablespace'

1 row in set (Elapsed: 00:00:00.00)

2) 修改表压缩属性

语法格式:ALTER TABLE.... ALTER COMPRESS (<’method’>,<level>);

示例:

  gbase> ALTER TABLE t1 ALTER COMPRESS('newrapidz',0);

Query OK, 0 rows affected (Elapsed: 00:00:00.90)

gbase> SHOW CREATE TABLE t1\G

*************************** 1. row ***************************

 Table: t1

Create Table: CREATE TABLE "t1" (

 "a" int(11) DEFAULT NULL,

 "b" varchar(10) DEFAULT NULL

) COMPRESS('NewRapidZ', 0) ENGINE=EXPRESS DEFAULT CHARSET=utf8

TABLESPACE='sys_tablespace'

1 row in set (Elapsed: 00:00:00.00)

c、列级压缩:

        1)创建压缩列

语法格式:

CREATE TABLE column_definition COMPRESS (<’method’>,<level>)

示例:

        gbase> CREATE TABLE t1 (a int DEFAULT NULL,b varchar(10)

COMPRESS('HighZ',0));

Query OK, 0 rows affected (Elapsed: 00:00:00.22)

gbase> SHOW CREATE TABLE t1\G

*************************** 1. row ***************************

Table: t1

Create Table: CREATE TABLE "t1" (

"a" int(11) DEFAULT NULL,

"b" varchar(10) DEFAULT NULL COMPRESS('HighZ', 0)

) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'

1 row in set (Elapsed: 00:00:00.01)

2)修改压缩列

        语法格式 :ALTER TABLE... ALTER [column] column_name COMPRESS (<’method’>,<level>);

示例:

gbase> ALTER TABLE t1 ALTER a COMPRESS('rapidz',0);

Query OK, 0 rows affected (Elapsed: 00:00:00.31)

gbase> SHOW CREATE TABLE t1\G

*************************** 1. row ***************************

Table: t1

Create Table: CREATE TABLE "t1" (

"a" int(11) DEFAULT NULL COMPRESS('RapidZ', 0) ,

"b" varchar(10) DEFAULT NULL COMPRESS('HighZ', 0)

) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'

1 row in set (Elapsed: 00:00:00.00)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论