MySQL数据库存储引擎简介
MySQL数据库存储引擎简介
在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会被Oracle搁置并且逐步雪藏消灭掉的。MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来。
本文大致讲解一下MySQL目前除了主要的MyISAM、InnoDB、Heap(Memory)、NDB等引擎之外的其他引擎的发展和现状,以及MySQL主干以外的分支的状况,为了我们未来更好的使用MySQL或者其他分支建立一个了解基础。
要了解主要存储引擎,请参考手册:http://dev.mysql.com/doc/refman/5.1/zh/index.html
【MySQL存储引擎介绍】
[Falcon存储引擎]
Falcon存储引擎是MySQL当时寄以厚望的存储引擎,主要是为了面对当时Oracle收购了InnoBase公司的情况,用来取代InnoDB的一个存储引擎。Falcon引擎的主导人员是大师Jim Starkey,从2006年开始开发,到2008年发布Beta版本,至今为止也没有走入主流。2008年中旬,Falcon的主架构师Jim Starkey宣布从MySQL公司辞职,加入了一家创业公司NimbusDB担任CEO,去设计和开发运行在云计算上面的关系/语义数据库,按照2010年目前NoSQL市场的发展来看,他的选择是正确的,但是带来的结果是Falcon陷入一个没有主导人员的地步,导致了至今都属于性能糟糕,半死不活的状态。
Falcon引擎是MySQL AB公司基于Netfrastrucure公司的产品开发的(Netfrastrucure公司被MySQL AB收购),Falcon当初的目标是嵌入到MySQL6.0中用来取代InnoDB引擎,基本很多功能设计都是按照InnoDB的目标去设计的。
Falcon是面向多CPU、拥有大量内存的当代硬件环境和典型Web应用的数据库操作特点而开发的,主要功能包括多版本并发控制、完善的ACID支持、支持前缀压缩的B+树索引、数据页压缩(在磁盘上以压缩形式存储,在内存中以非压缩形式存储)、成组提交等。从功能方面来说没有什么新鲜事,大体也就实现了一个事务型存储引擎必须要有的功能(很多高级的功能如多表空间、分区等都还没有),但其架构上却有很多独特之处。
通过网上的一些测试结果Falcon的性能还是很糟糕的,写入速度是MyISAM的1/10~1/20,Select的优化也有问题,添加了索引感觉还会进行全表扫描。所以,我终究感觉Falcon是个杯具的引擎。
Falcon特性:http://dev.mysql.com/doc/falcon/en/se-falcon-features.html
Falcon测试:http://blog.gslin.org/archives/2008/02/12/1425/
Falcon手册:http://dev.mysql.com/doc/falcon/en/