MariaDB是MySQL关系数据库管理系统的一个分支。 MySQL的原始开发人员在Oracle收购MySQL后提出的关注之后创建了MariaDB。
MariaDB工作与在MySQL下工作几乎一模一样,她们有相同的命令、界面,以及在MySQL中的库与API,所以MariaDB可以说是为替换MySQL量身定做的,所以它们之间是相通用(兼容),换用后连数据库都不必转换!并可以获得MariaDB提供的许多更好的新特性。
更多的存储引擎
除了提供标准的MyISAM、BLACKHOLE、CSV、MEMORY、ARCHIVE和MERGE引擎外,在MariaDB源码与二进制包中还提供下列存储引擎:
- Aria
- XtraDB (与InnoDB对等替换)
- PBXT(在MariaDB 5.1、MariaDB 5.2与 MariaDB 5.3提供,MariaDB 5.5己不提供了)
- FederatedX (与Federated对等替换)
- OQGRAPH (在MariaDB 5.1、MariaDB 5.2与 MariaDB 5.3提供,MariaDB 5.5己不提供了) —5.2版添加
- SphinxSE —5.2版添加
- IBMDB2I. Oracle公司从MySQL 5.1.55移除该引擎,MariaDB将在代码中保留其至版本5.5。
- TokuDBMariaDB 5.5与MariaDB 10.0
- Cassandra MariaDB 10.0
- 我们正忙于给MariaDB添加NoSQL存储引擎。
- CONNECT MariaDB 10.0
- SEQUENCE MariaDB 10.0
- Spider MariaDB 10.0
MariaDB 速度提升
在MariaDB 5.3中进行了大量的优化提升,子查询真正可用了!完整的列表及与之比较请点击此处,性能指标请在此处查看。
更快,更安全的复制:二进制日志的组提交。这使得许多使用复制和批量更新的设置速度提高了两倍以上。
Windows上的Innodb异步IO子系统的改进。
MEMORY(HEAP)引擎的索引速度更快。根据一个简单的测试,整数索引的INSERT速度提高了24%,CHAR(20)列的索引速度提高了60%。
CHECKSUM TABLE更快。
我们改进了字符集转换的性能(并且在不需要的时候删除转换)。整体速度提升是1-5%(根据sql-bench),但是对于所有字符在0x00-0x7f之间的大结果集可以更高。
MariaDB 5.1中的线程池,在MariaDB 5.5中更好。这使得MariaDB能够运行200,000多个连接,并在使用多个连接时显着提高速度。
在调试编译但未使用的情况下,对DBUG代码进行了一些改进,以使其执行速度更快。
我们使用Aria存储引擎可以实现更快速的复杂查询(通常使用基于磁盘的临时表的查询)。 Aria存储引擎用于内部临时表,在进行复杂选择时应该提高速度。与MyISAM相比,Aria对于临时表通常更快,因为Aria将行数据缓存在内存中,通常不必将临时行写入磁盘。
测试套件已经扩展,现在运行速度比以前快了,尽管它测试了更多的东西。
MariaDB-扩展&新特性
我们为MariaDB添加了很多新特性,假如一个补丁或特性是涉及可用性、安全与稳定性——我们会积极地将其添加到MariaDB中。特别值得一提如下:
- MariaDB中的微秒 - 5.3中的新增功能
- 流程列表中的微秒级精度
- 表消除
- 虚拟列 - 5.2中的新功能
- 扩展用户统计 - 5.2中的新功能
- MyISAM的分段密钥缓存 - 5.2中的新功能
- 杀死一个用户的所有查询 - 新的5.3
- 可插入的身份验证 - 5.2中的新功能
- 特定于存储引擎的CREATE TABLE - 5.2中的新功能
- 信息SCHEMA.PLUGINS表的增强 - 5.2中的新增功能
- 组提交二进制日志。这使复制速度更快! - 在5.3新
- 添加--rewrite-db mysqlbinlog选项来更改使用的数据库 - 新的在5.2
- ALTER TABLE和LOAD DATA INFILE的进度报告。 - 在5.3新
- 更快的连接和子查询。 - 在5.3新
- HandlerSocket和更快的HANDLER调用。 - 在5.3新
- 动态列支持。 - 在5.3新
- GIS功能 - 5.3中的新功能
- 多源复制。 - 在10.0新
SHOW EXPLAIN给出了在另一个线程中运行查询的EXPLAIN计划。 - 在10.0新
有关完整列表,请参阅每个版本的功能
MariaDB-更充分的测试
- 测试套件中有更多的测试。
- 错误在测试中修复。
- 测试使用不同的配置选项构建,以获得更好的功能测试。
- 删除无效的测试。 (例如,如果该特征不在测试版本中,则不要测试特征“X”)
MariaDB-更少的警告与缺陷
- 错误是不好的。 修复尽可能多的错误,尽量不要引入新的错误。
- 编译器警告也不好。 消除尽可能多的编译器警告。
MariaDB-真正开源
MariaDB中的所有代码都是在GPL,LPGL或BSD下发布的。 MariaDB没有像在MySQL企业版中可以找到的闭源模块。 事实上,MySQL 5.5企业版中的所有封闭源代码功能都可以在MariaDB开源版本中找到。
MariaDB包含所有已修复错误的测试用例。 Oracle不提供MySQL 5.5中修复的新bug的测试用例。
所有的错误和发展计划是公开的。
MariaDB是真正开源的社区开发的。