MariaDB是一个向后兼容、替代MySQL的数据库服务器。它包含所有主要的开源存储引擎。
MariaDB源代码公开存放于Launchpad项目托管平台,同时也提供了二进制和编译包供下载。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。
为何改了个名字呢,这其中是有些典故的。
MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB。
MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
在Oracle控制下的MySQL开发,有两个主要问题:
1. MySQL核心开发团队是封闭的,完全没有Oracle之外的成员参加。很多高手即使有心做贡献,也没办法做到。
2. MySQL新版本的发布速度,在Oracle收购Sun之后大为减缓。Widenius有一个ppt,用数据比较了收购之前和之后新版本的发布速度。有很多bugfix和新的feature,都没有及时加入到发布版本之中。
以上这两个问题,导致了各个大公司,都开发了自己定制的MySQL版本,包括Yahoo!/Facebook/Google/阿里巴巴+淘宝网等等。
MySQL是开源社区的资产,任何个人/组织都无权据为己有。为了依靠广大MySQL社区的力量来更快速的发展MySQL,另外开分支是必须的。
MariaDB默认的存储引擎是Maria,不是MyISAM。Maria可以支持事务,但是默认情况下没有打开事务支持,因为事务支持对性能会有影响。可以通过以下语句,转换为支持事务的Aria引擎。ALTER TABLEtablenameENGINE=MARIATRANSACTIONAL=1;
特点
MariaDB 是一个采用Maria存储引擎的MySQL分支版本,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器。[1]
这个项目的更多的代码都改编于 MySQL 6.0,例如 “pool of threads”功能提供解决多数据连接问题。MariaDB 5.1.41 RC可以到这里下载,32位和64位已编译Linux版本,还包括源代码包。MariaDB基于GPL 2.0发布。
与 MySQL 相比较,MariaDB 更强的地方在于:
Maria存储引擎PBXT 存储引擎
XtraDB存储引擎
FederatedX存储引擎
更快的复制查询处理
线程池
更少的警告和bug
运行速度更快
更多的 Extensions (More index parts, new startup options etc)
更好的功能测试
数据表消除
慢查询日志的扩展统计
支持对 Unicode 的排序
High Performance
|
Developers
|
DBAs
|
NoSQL
|
---|---|---|---|
Thread pool
线程池
|
Microsecond precision & type
微秒支持
|
Segmented MyISAM keycache
MyISAM缓存分段
|
HandleSocket
直接InnoDB/XtrDB访问
|
Group commit for the binary log
binlog组提交
|
SphinxSE for full-text search
SphinxSE全文索引支持
|
Authentication plugins – PAM, Active Directory
授权插件
|
Dynamic columns
动态列
|
Non-blocking client library
非阻塞库
|
Subqueries materialize
子查询优化
|
LIMIT ROWS EXAMINED
LIMIT行检查限制
|
|
GIS functionality
地理信息系统支持
|
Progress reporting
进度报告
|