TokuDB简介
TokuDB是一个支持事务的“新”引擎,有着出色的数据压缩功能,由美国TokuTek公司(http://www.tokutek.com/) 研发,该公司于2015年4月份被Percona收购。 为了降低用户数据存储成本,云数据库(Aliyun RDS)增加了TokuDB引擎支持(MySQL5.6版本)。
TokuDB引擎有什么优点
出色的数据压缩功能,较低的IOPS消耗,如果您的数据量比较大,强烈建议您使用TokuDB,以节省空间成本,而且有着与InnoDB相当的性能。
使用TokuDB引擎有什么注意点
不支持外键(foreign key)功能,如果您的表有外键,切换到TokuDB引擎后,此约束将被忽略!!!
阿里云RDS中TokuDB的buffer pool size如何分配
我们提供了tokudb_buffer_pool_ratio参数(下图),作用是调整TokuDB的buffer pool(与InnoDB共享)分配比例,这个参数的意思是TokuDB占用buffer pool的百分比。
小提醒:
如果您是TokuDB用户,建议把这个参数设置成100,表示TokuDB将使用全部buffer pool; 如果您是InnoDB用户,请忽略此参数,默认为InnoDB使用全部buffer pool。
阿里云RDS中如何使用TokuDB引擎
第一种方法是在DDL语句中指定表的引擎:
建新表:
CREATE TABLE ... ENGINE=TokuDB;
更改引擎:
ALTER TABLE ... ENGINE=TokuDB;
ANALYZE TABLE ...;
第二种方法是通过IDB工具指定表引擎为TokuDB:
第三种方法(推荐): 设置default_storage_engine为TokuDB后,表引擎默认为TokuDB。(注意:此设置需要重启)
阿里云RDS中TokuDB表的热备
RDS备份功能已完全支持TokuDB引擎,当您在做备份的时候,会自动备份TokuDB表。
阿里云RDS中如何修改TokuDB引擎的压缩算法
第一种方法是在client中指定row_format:
CREATE/ALTER TABLE ... ENGINE=TokuDB ROW_FORMAT=[压缩算法];
第二种方法是通过IDB工具指定:
TokuDB的压缩算法如何选择
- tokudb_zlib:表启用zlib压缩,压缩效果偏中,CPU消耗偏中,建议使用(默认);
- tokudb_quicklz:表启用quicklz压缩,压缩效果差,CPU消耗低;
- tokudb_lzma:表启用lzma压缩,压缩效果好,CPU消耗高。
TokuDB默认压缩算法为zlib,建议您不要做修改,因为zlib压缩的性价比非常高。