数据库内核月报 - 2015 / 04

TokuDB · 产品新闻 · RDS TokuDB小手册

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的百分比。
User-ratio

小提醒:
如果您是TokuDB用户,建议把这个参数设置成100,表示TokuDB将使用全部buffer pool;
如果您是InnoDB用户,请忽略此参数,默认为InnoDB使用全部buffer pool。

阿里云RDS中如何使用TokuDB引擎

  1. 第一种方法是在DDL语句中指定表的引擎:

    建新表:

     CREATE TABLE ... ENGINE=TokuDB;
    

    更改引擎:

      ALTER TABLE ... ENGINE=TokuDB;  
      ANALYZE TABLE ...;
    
  2. 第二种方法是通过IDB工具指定表引擎为TokuDB:
    Idb-engine

  3. 第三种方法(推荐):
    设置default_storage_engine为TokuDB后,表引擎默认为TokuDB。(注意:此设置需要重启)
    User-default-engine

阿里云RDS中TokuDB表的热备

RDS备份功能已完全支持TokuDB引擎,当您在做备份的时候,会自动备份TokuDB表。

阿里云RDS中如何修改TokuDB引擎的压缩算法

  1. 第一种方法是在client中指定row_format:

     CREATE/ALTER TABLE ... ENGINE=TokuDB ROW_FORMAT=[压缩算法];
    
  2. 第二种方法是通过IDB工具指定:
    Idb-compress

TokuDB的压缩算法如何选择

  1. tokudb_zlib:表启用zlib压缩,压缩效果偏中,CPU消耗偏中,建议使用(默认);
  2. tokudb_quicklz:表启用quicklz压缩,压缩效果差,CPU消耗低;
  3. tokudb_lzma:表启用lzma压缩,压缩效果好,CPU消耗高。
TokuDB默认压缩算法为zlib,建议您不要做修改,因为zlib压缩的性价比非常高。