TokuDB · 产品新闻 · RDS TokuDB小手册
最后更新于:2022-04-01 10:40:34
## 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](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-24_5603923ae7b59.png)
小提醒:
如果您是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](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-24_5603923f6d46f.png)
3. 第三种方法(推荐):
设置default_storage_engine为TokuDB后,表引擎默认为TokuDB。(注意:此设置需要重启)
![User-default-engine](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-24_5603923f983f1.png)
### 阿里云RDS中TokuDB表的热备
RDS备份功能已完全支持TokuDB引擎,当您在做备份的时候,会自动备份TokuDB表。
### 阿里云RDS中如何修改TokuDB引擎的压缩算法
1. 第一种方法是在client中指定row_format:
~~~
CREATE/ALTER TABLE ... ENGINE=TokuDB ROW_FORMAT=[压缩算法];
~~~
2. 第二种方法是通过IDB工具指定:
![Idb-compress](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-24_56039244eecef.png)
### TokuDB的压缩算法如何选择
1. tokudb_zlib:表启用zlib压缩,压缩效果偏中,CPU消耗偏中,建议使用(默认);
2. tokudb_quicklz:表启用quicklz压缩,压缩效果差,CPU消耗低;
3. tokudb_lzma:表启用lzma压缩,压缩效果好,CPU消耗高。
TokuDB默认压缩算法为zlib,建议您不要做修改,因为zlib压缩的性价比非常高。