TokuDB除了有着较好的写性能外,还有一个重要的特性:压缩,而且大部分情况下压缩效果很不错。
目前TokuDB有4种压缩算法:
使用上也比较简单:
可能大家会有一个疑问:如果一个表创建的时候压缩算法是tokudb_quicklz,我可以通过ALERT TABLE改成其他算法吗?答案是:可以的!
TokuDB在底层实现上,用1byte来标记当前block的压缩算法,并持久化到磁盘,当压缩算法改变后,从磁盘读取数据然后解压缩的代码类似:
是不是很机智?
在使用TokuDB的过程中,一般不会改变压缩算法,除非默认的tokudb_zlib不给力,TokuDB是大block(4MB),压缩效果较好,enjoy~