## 有4压缩很任性 TokuDB有着出色的压缩特性,这不是”盖”的: RDS上有个InnoDB实例,1天的数据将近700GB空间,换成TokuDB后(默认zlib压缩),同样的700GB可以保存5天的数据,业务读写性能也无任何影响,空间成本直线下降。 为什么TokuDB的压缩这么给力? 因为TokuDB一个“页”的大小为4MB,压缩起来,这酸爽… ## zstd新压缩算法 TokuDB支持3种压缩算法: ~~~ tokudb_quicklz: 压缩效果差,CPU消耗低 tokudb_zlib: 压缩效果偏中,CPU消耗偏中(默认) tokudb_lzma: 压缩效果好,CPU消耗高 ~~~ 之所以提供多种压缩算法,主要是从CPU消耗和压缩效果上综合考虑的,大部分情况下 tokudb_zlib 都可以应付,而且压缩效果也不错,也是 TokuDB 默认压缩算法。 最近压缩界出了一枚小鲜肉:[zstd压缩算法](https://github.com/Cyan4973/zstd),由压缩专业户[Yann Collet](http://fastcompression.blogspot.com/)倾力打造。 zstd有着非常好的压缩效果,最重要的是它CPU消耗低和压缩(解压)速度非常快,我们内部TokuDB版本已集成此算法,下面就让我们看看同样数据集的情况下,它们的效果对比: 压缩效果对比图(越高越好): ![ratio](https://oss.showapi.com/doc/2096/185/767aade7-9a0e-4942-bef7-38e4a34fcc23.jpg) zstd的压缩效果介于zlib和lzma之间,已经很理想了。 压缩时间对比图: ![second](https://oss.showapi.com/doc/2096/185/271edbda-cd14-4a80-aabc-ca220f50ea28.jpg) 压缩时间非常少,几乎是quicklz的一半。 相信过不了多久,你的RDS数据已经悄悄的跑在zstd压缩算法之下。 如果你对我们所做的事情感兴趣,请抓起鼠标,敲起键盘,快快跟我们联系吧,最后悄悄说一句: # 我们有妹子!!!