MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用GPL授权许可。
GitHub
产生
在Oracle控制下的MySQL开发,有两个主要问题:1. MySQL核心开发团队是封闭的,完全没有Oracle之外的成员参加。很多高手即使有心做贡献,也没办法做到。2. MySQL新版本的发布速度,在Oracle收购Sun之后大为减缓。Widenius有一个ppt,用数据比较了收购之前和之后新版本的发布速度。有很多bugfix和新的feature,都没有及时加入到发布版本之中。
以上这两个问题,导致了各个大公司,都开发了自己定制的MySQL版本,包括Yahoo!/Facebook/Google/阿里巴巴+淘宝网等等。
目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
MariaDB 的目的是完全兼容 MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
在存储引擎方面,使用 XtraDB 来代替 MySQL 的 InnoDB。因 MariaDB 跟 MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。也就是说,在大多数情况下,你完全可以卸载MySQL然后安装MariaDB,然后就可以像之前一样正常的运行。
如今,MariaDB 是当下最受关注的 MySQL 数据库衍生版,也被视为开源数据库MySQL的替代品。MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。出于实用的目的,MariaDB是同一MySQL版本的二进制替代品(例如MySQL 5.1->MariaDB 5.1, MariaDB5.2和MariaDB 5.3是兼容的。MySQL 5.5将会和MariaDB 5.5保持兼容)。而且从MySQL迁移到MariaDB也是非常简单的。
- 根据和表定义文件(.frm)是二进制兼容的
- 所有客户端API、协议和结构都是完全一致的
- 所有文件名、二进制、路径、端口等都是一致的
- 有的MySQL连接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不变
- mysql-client包在MariaDB服务器中也能够正常运行
- 共享的客户端库与MySQL也是二进制兼容的
不兼容的地方
MariaDB默认的存储引擎是Maria,不是MyISAM。Maria可以支持事务,但是默认情况下没有打开事务支持,因为事务支持对性能会有影响。可以通过以下语句,转换为支持事务的Maria引擎。
ALTER TABLE tablename ENGINE=MARIA TRANSACTIONAL=1;
MariaDB 名称来自 Michael Widenius 的女儿 Maria 的名字。
版本
- 10.0.0(2012-11-12)
10.0.x 版以 MySQL 5.5 版为基础,加上移植自 MySQL 5.6版的功能和自行开发的新功能。 5.5
MariaDB 直到 5.5 版本,均依照MySQL的版本。参考我收集的 MySQL 版本。
因此,使用MariaDB5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。SkySQL 公司
2008年2月,Sun 收购 MySQL,