MySQL 高性能存储引擎TokuDB
1、TokuDB简介 |
在MySQL最流行的支持全事务的引擎为INNODB。其特点是数据本身是用B-TREE来组织,数据本身即是庞大的根据主键聚簇的B-TREE索引。所以在这点上,写入速度就会有些降低,因为要每次写入要用一次IO来做索引树的重排。特别是当数据量本身比内存大很多的情况下,CPU本身被磁盘IO纠缠的做不了其他事情了。这时我们要考虑如何减少对磁盘的IO,来排解CPU的处境
常见的方法有:
- 1、把INNODB的PAGE增大(默认16KB),但增大也就带来了一些缺陷。 比如,对磁盘进行CHECKPOINT的时间将延后。
- 2、把日志文件放到更快速的磁盘上,比如SSD。
TokuDB 是一个支持事务的“新”引擎,有着出色的数据压缩功能,由美国 TokuTek 公司研发(现在已经被 Percona 公司收购)。拥有出色的数据压缩功能,如果您的数据写多读少,而且数据量比较大,强烈建议您使用TokuDB,以节省空间成本,并大幅度降低存储使用量和IOPS开销,不过相应的会增加 CPU 的压力。
2、TokuDB 的特性 |
1.丰富的索引类型以及索引的快速创建
TokuDB 除了支持现有的索引类型外, 还增加了(第二)集合索引, 以满足多样性的覆盖索引的查询, 在快速创建索引方面提高了查询的效率
2.(第二)集合索引
也可以称作非主键的集合索引, 这类索引也包含了表中的所有列, 可以用于覆盖索引的查询需要, 比如以下示例, 在where 条件中直接命中 index_b 索引, 避免了从主键中再查找一次.