前言
相信很多 RDS 用户都很迷自己的数据库怎么会那么大吧,数据库太大不仅备份麻烦,而且还要多花点钱。不过还好 RDS/AliSQL 一个主打的特性就是支持 TokuDB引擎 来做数据库的引擎。在TokuDB引擎的帮助下,我们的 RDS/AliSQL 能以低于 五分之一 的存储开销来支持用户大数据需求!
介绍
TokuDB 是一个支持事务的“新”引擎,有着出色的数据压缩功能,由美国 TokuTek 公司(现在已经被 Percona 公司收购)研发。拥有出色的数据压缩功能,如果您的数据写多读少,而且数据量比较大,强烈建议您使用TokuDB,以节省空间成本,并大幅度降低存储使用量和IOPS开销,不过相应的会增加 CPU 的压力。
注意:
1. TokuDB引擎 不支持外键(foreign key)功能,如果您的表有外键,切换到 TokuDB引擎 后,此约束将被忽略。 如果数据库过分依赖外键的话,个人建议要有壮士断腕的决心,早点处理掉,不过数据库业务也会外键缩连累的!
2. TokuDB 不适用于大量读取的场景
设置
备份,升级
- 操作还是有一定风险的,建议先备份数据库。
- 目前 RDS 只支持 5.6 或更新的版本使用 TokuDB 引擎。
设置参数
在 RDS
—— 实例
—— 参数设置
中设置
一、设置默认数据库引擎,搜索 default_storage_engine
,将参数改为 TokuDB
即可。并不会影响已建立的数据库,新建的数据库的数据库引擎默认为 TokuDB
二、设置 loose_tokudb_buffer_pool_ratio 的比例,即 tokudb 占用 tokudb 和 innodb 共用缓存的比例。
淘宝数据库研发组的说明:
- 如果您是 TokuDB 用户,建议把这个参数设置成 100,表示 TokuDB 将使用全部 buffer pool。
- 如果您是 InnoDB 用户,请忽略此参数,默认是 InnoDB 使用全部 buffer pool。
三、重启数据库,以生效。
修改表,使用新引擎
一、修改表 ,运行 SQL 语句
ALTER TABLE `表名称` ENGINE=TokuDB
即可完成修改。
二、修改压缩算法:
ALTER TABLE `表名称` ENGINE=TokuDB ROW_FORMAT=`压缩算法`;
TokuDB的压缩算法如何选择:
- tokudb_zlib:表启用zlib压缩,压缩效果偏中,CPU消耗偏中,建议使用(默认)
- tokudb_quicklz:表启用quicklz压缩,压缩效果差,CPU消耗低
- tokudb_lzma:表启用lzma压缩,压缩效果好,CPU消耗高
通过 DMS 可视化修改
如果有些站长没有学过 SQL 可能不会修改, 还好阿里云还有强大的 DMS 等着我们呢!
一、进入相关数据,对准要修改的表,右键 —— 编辑表结构
二、将 储存引擎 修改为 Tokudb,如果需要修改压缩算法,点击 更多选项 即可。
记得点击保存哦!
我这里显示图片因为证书的原因挂了。
还真是,证书过期了
现在好啦,用的啥证书啊?
不会吧,我才刚换的证书。
当时回复的时候就是OK的了。你这个证书是买的么?
阿里云的免费赛门铁克呀
Soga,想买 WIldcard,不知哪家便宜哪家强。
不怕麻烦的免费的多签几张就是了