MySQL学习(一) 概述

MySQL学习(一) 概述

    MySQL是一个开源的数据库系统,近些年来使用率越来越高,目前属于Oracle公司所有,其拥有MySQL的商标,属于主流版本,由于其开源特性,出现了一些分支,常见的有MariaDB、Percona Server、Drizzle。这三个版本各有其特点。其中目前最流行的是MariaDB,很多Linux发行版默认的MySQL已经切换为MariaDB,但其他分支也有其适用范围,在选择的时候需要仔细甄别。
    Percona Server由一家MySQL咨询公司拥有,这个公司的工具包Percona ToolKit非常出名。这个数据库也是开源版本,但是并不接受外界代码贡献,因为它实际上是Oracle的主流MySQL版本的增强版,所以其版本号基本和Oracle的主流版本一致,其目标是增强主流版本功能,集中在透明、性能和操作灵活性上,兼容性做到了可以直接打开主流版本的数据库,反之也不困难,这方便了临时切换,这个公司似乎并不主张用户更换其MySQL版本,可能其后续开发力量有限吧。默认的搜索引擎为XtraDB存储引擎,即改进版本的InnoDB,可以完全兼容InnoDB。
   MariaDB是MySQL的创始人Monty Widenius因为对MySQL的开发流程不满,而离开Sun之后创建的Monty公司开发的MySQL分支,MariaDB的名称来源其女儿的名字maria。MariaDB默认的存储引擎为aria,即增强版的MyISAM,支持事务功能,还增加了许多针对服务器的扩展,它也包含Percona XtraDB引擎,以及SphinxSE和PBXT引擎。目前其版本为10.0.12,其源码来源于主流版本的MySQL5.5版本,按照其网站的说法,移植和重新实现了MySQL5.6的特性,增加了一些新的特性。不过目前其10.1.0版本也在开发中,其网站说明是“MariaDB 10.1是目前正在研发的版本,是MariaDB 10.0的演进,包括从MySQL 5.6、5.7的一些特性的移植和重新实现,还包括一些全新的功能”,从目前来看,MariaDB的目标是兼容主流版本,增加新功能,如果Oracle长期不更新版本,MariaDB也是个不错的选择。但是有一个问题,Monty公司也是需要盈利的,其也提供MariaDB的企业版及Cluster,其持续性不知道是否比得上Oracle。
    Drizzle是个完全不一样的分支,它不兼容于MySQL,基于MySQL 4.1的源码,删除了多余的功能,开发语言改为C++,采用流行的Boost库,目标是大内存、多内核的系统,较适合新的应用。
   在版本的选择上,主流版本是第一选择,MariaDB目前来说看不出明显的优势,而且其新的特性也没有造成压倒性的优势,Percona Server本身来说,是MySQL的增强版,也没有明显的优势。Drizzle需要更仔细的选择,毕竟其和MySQL不兼容。
    所以一般来说,应该选择主流版本,测试MariaDB版本,看是否值得迁移。