具有高扩展性的存储引擎:TokuDB

TokuDB是什么?TokuDB是一个应用在MySQL和MariaDB中的存储引擎,它使用索引来加快查询速度,具有高扩展性并支持Hot Schema Modification。如果你的记录数量过亿、存储旧的记录或想要缩小数据占用的存储空间,很适合使用TokuDB。本文内容摘自淘宝核心系统团队博客分享的文档,最下面有原文地址及文档下载。

一、TokuDB的特点:

- 插入性能加快20到80倍
- 压缩数据减少存储空间
- 数据量可扩展到几个TB
- 不会产生索引碎片
- 支持Hot Column Addition, Hot Indexing和MVCC

二、TokuDB的安装和使用:

tokudb-install

三、Fractal Tree:

Fractal Tree是TokuDB中使用的索引结构,是TokuDB安身立命的根本,插入性能可以匹配B树最好的情况,高于B树最差情况两个数量级。

Fractal Tree

1、Fractal Tree结构特点
- 由多个有序的数组构成,大小呈指数级增长
- 数组要么全空,要么全满
- 数据插入到最小的数组,如果空间不够就将数据进行Merge

2、Fractal Tree的建立

Fractal Tree的建立

3、Fractal Tree的建立 (cont.)

Fractal Tree的建立 (cont.)

Fractal Tree的建立 (cont.)

4、Fractal Tree上的查询

Fractal Tree上的查询

四、TokuDB提供的特殊支持:

Hot Index Creation,TokuDB允许在已有table上创建索引,同时在索引创建的过程中可以进行insert和query操作。
- 需要设定服务器变量set tokudb_create_index_online=on
- 只能使用create index命令

Hot Column Addition and Deletion(HCAD),TokuDB允许在已有table上添加或者删除属性列,同时只在很短的时间内阻塞update和query操作。
- HCAD会获取一个表锁,用于将脏页刷到外存,所以会暂时阻塞其他操作

五、TokuDB占用的存储空间:

TokuDB占用的存储空间

TokuDB占用的存储空间

六、如何使用TokuDB?

如果你要存储blob,不要使用TokuDB,因为它限制记录不能太大;
如果你的记录数量过亿,使用TokuDB;
如果你注重update的性能,不要使用TokuDB,它没有Innodb快;
如果你要存储旧的记录,使用TokuDB;
如果你想要缩小数据占用的存储空间,使用TokuDB;

 

转自:http://www.izhangheng.com/highly-scalable-storage-engine-tokudb/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值