阿里云RDS推出5倍数据压缩引擎.


为了进一步降低用户的数据存储成本,阿里云RDS推出了数据压缩的支持。

在TokuDB引擎的帮助下,RDS for MySQL能以低于五分之一的存储开销来支持用户大数据需求。

阿里云RDS推出5倍数据压缩引擎.
---------------------------------
为什么要压缩数据 

当一个数据库的数据空间达到TB级别时运维难度是非常高的。尤其是数据迁移和备份操作,不仅耗时将会成倍增长,而且成功率会有很大下降。另外无论用户是自建数据库还是使用云服务,增长迅速的存储空间都会带来巨大的开支 

---------------------------------
什么是TokuDB

TokuDB是一个支持事务的MySQL引擎,拥有出色的数据压缩能力和极低的资源消耗。RDS团队将某些超过2TB的InnoDB表转换成TokuDB后,数据空间骤降到400GB;写性能有一定程度提升的同时,IOPS反而降低为原先的八分之一。
---------------------------------

如何压缩数据
RDS for MySQL 5.6全面兼容TokuDB,用户可以通过命令行或者DMS对现有的表进行数据压缩。具体操作步骤参考阿里云官网文档中心。
---------------------------------

使用须知
1、 TokuDB可以大幅度降低存储使用量和IOPS开销
2、 TokuDB支持在线DDL,添加/删除列和索引不会引起阻塞
3、 TokuDB无法支持外键Foreign Key
4、 TokuDB不适用于大量读取的场景
---------------------------------

操作步骤
1、 升级RDS for MySQL
目前只有5.6版本支持TokuDB。所以在进行压缩前用户需要将RDS for MySQL升级到5.6版本。
2、 配置TokuDB引擎
令行:select sum(data_length) into @all_size from information_schema.tables where engine='innodb';
select sum(data_length) into @change_size from information_schema.tables where engine='innodb' and concat(table_schema, '.', table_name) in ('dba1.tbl1', 'db2.tbl2', 'db3.tbl3');
select round(@change_size/@all_size*100);
参数配置:
登录RDS控制台,将loose_tokudb_buffer_pool_ratio设置为上步计算得到百分比。该参数需要重启数据库才能生效。
3、 开启压缩
命令行:ALTER TABLE XXX ENGINE=TokuDB