在MySQL被Oracle收购之后,越来越多的人对于MySQL的前途表达了担忧,对于开源的MySQL,或多或少对于Oracle自家的数据库产品萌生冲击,这个开源免费的MySQL 对于Oracle更多的是包袱而不是资产。譬如淘宝就从Oracle转成了MySQL,一点大型互联网企业也在推行去IOE(I:IBM,O:Oracle,E:EMC),甲骨文企业收购了MySQL后,有将MySQL闭源的潜在风险,故此社区采用分支的形式来避开这个风险。

MySQL分支的取舍:Percona仍然MariaDB

  Percona

  在绍介 Percona 之前,首要要绍介的是XtraDB存储引擎,在MYSQL中接触比较多的是MyISAM和InnoDB这两个存储引擎,先前的文章:《MySQL MyISAM和InnoDB的差别》也施行了详细的绍介。

  MySQL 4和5使役默认的MyISAM存储引擎安装每个表。从5.5起始,MySQL已将默认存储引擎从MyISAM更改为InnoDB。MyISAM没有提供事务支持,而InnoDB提供了事务支持。与MyISAM相形,InnoDB提供了好些细微的性能改进,而且在办理潜在的数据亡失时提供了更高的靠得住性和安全性。

  Percona XtraDB 是 InnoDB 存储引擎的增强版,被设计用来更好的使役更新计算机硬件系统的性能,同时还包包括一点在高性能背景下的新特性。XtraDB 存储引擎是纯粹的向下兼容,在 MariaDB 中,XtraDB 存储引擎被标识为”ENGINE=InnoDB”,这个与 InnoDB 是同样的,所以你可以直接用XtraDB 替换掉 InnoDB 而不会萌生任何问题。Percona XtraDB 包包括所有 InnoDB’s 壮健性,可倚赖的 ACID 兼容设计和高级 MVCC 架构。XtraDB 在 InnoDB 的坚实基础上构建,使 XtraDB 具备更多的特性,更好调用,更多的参变量指标和更多的扩展。从实践的角度来看,XtraDB 被设计用来在多核心的条件下更管用的使役内存和更加便捷,更加可用。新的特性被用来减低 InnoDB 的局限性。性能层面,XtraDB与内置的MySQL 5.1 InnoDB 引擎相形,它每分钟可办理2.7倍的事务。

  Percona Server由领先的MySQL咨询企业Percona发布。Percona Server是一款独立的数据库产品,其可以纯粹与MySQL兼容,可以在不更改代码的情况了下将存储引擎改易成XtraDB。

  Percona团队的终极声明是“Percona Server是由Oracle发布的最靠近官方MySQL Enterprise发行版的版本”,故此与其它更改了大量基本核心MySQL代码的分支有所差别。Percona Server的一个缺点是它们自个儿管理代码,拒绝外部开发成员的贡献,以这种形式确保它们对产品中所包含功能的扼制。 


  MariaDB 

  MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价钱,将自个儿开创的企业MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名称。 

  MariaDB的目标是纯粹兼容MySQL,涵盖API和命令行,使之能轻松成为MySQL的接替品。在存储引擎方面,10.0.9版起使役XtraDB(名称代号为Aria)来接替MySQL的InnoDB。 

  版本方面,MariaDB直至5.5版本,均沿袭MySQL的版本。故此,使役MariaDB5.5的人会从MySQL 5.5中理解到MariaDB的所有功能。从2012年11月12日起发布的10.0.0版起始,不再沿袭MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。

  相对于最新的MySQL5.6,MariaDB在性能、功能、管理、NoSQL扩展方面包含了更浩博的特性。譬如微秒的支持、线程池、子查询优化、组提交、进度报告等。 


  Percona OR MariaDB 

  取舍是一件苦痛的事体,对于上头的两个数据库,就是大企业也存在分歧,就像淘宝现下使役的是Percona 5.5.18,而GoogleWikipedia则站在了MariaDB这边。具体哪个会走的更远,我们就拭目以待吧。