开发者社区> 问答> 正文

阿里云 RDS 开启 TokuDB 引擎

妙正灰 2017-02-22 14:09:42 4436


前言


相信很多 RDS 用户都很迷自己的数据库怎么会那么大吧,数据库太大不仅备份麻烦,而且还要多花点钱。不过还好 RDS/AliSQL 一个主打的特性就是支持 TokuDB引擎 来做数据库的引擎。在TokuDB引擎的帮助下,我们的 RDS/AliSQL 能以低于 五分之一 的存储开销来支持用户大数据需求!

介绍


TokuDB 是一个支持事务的“新”引擎,有着出色的数据压缩功能,由美国 TokuTek 公司(现在已经被 Percona 公司收购)研发。拥有出色的数据压缩功能,如果您的数据写多读少,而且数据量比较大,强烈建议您使用TokuDB,以节省空间成本,并大幅度降低存储使用量和IOPS开销,不过相应的会增加 CPU 的压力。


注意:


1. TokuDB引擎 不支持外键(foreign key)功能,如果您的表有外键,切换到 TokuDB引擎 后,此约束将被忽略。 如果数据库过分依赖外键的话,个人建议要有壮士断腕的决心,早点处理掉,不过数据库业务也会外键缩连累的!


2. TokuDB 不适用于大量读取的场景

设置



备份,升级

  1. 操作还是有一定风险的,建议先备份数据库。
  2. 目前 RDS 只支持 5.6 或更新的版本使用 TokuDB 引擎。


设置参数


在 RDS —— 实例 —— 参数设置 中设置
一、设置默认数据库引擎,搜索 default_storage_engine ,将参数改为 TokuDB 即可。并不会影响已建立的数据库,新建的数据库的数据库引擎默认为 TokuDB






二、设置 loose_tokudb_buffer_pool_ratio 的比例,即 tokudb 占用 tokudb 和 innodb 共用缓存的比例。
淘宝数据库研发组的说明:
  1. 如果您是 TokuDB 用户,建议把这个参数设置成 100,表示 TokuDB 将使用全部 buffer pool。
  2. 如果您是 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 等着我们呢!
一、进入相关数据,对准要修改的表, 右键 —— 编辑表结构


记得点击保存哦!

存储 SQL 缓存 算法 AliSQL 数据可视化 关系型数据库 数据库 数据库管理 RDS
分享到
取消 提交回答
全部回答(0)
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题