两岁的 MariaDB
可以说,MariaDB 现在作为一个打包产品已经两岁了。最新版本 MariaDB 5.3 Beta 是多年辛勤工作的结晶。我们相信它包含了自 MySQL 5.0 发布以来,对 MySQL 代码进行的最大、最重要的更改。我说的是对称为优化器(Optimizer)的核心产品组件所做的更改。
为什么我们要触碰这个产品如此核心的部分?快速的答案是,原来的优化器已经大约 17 岁了。在我们为 MariaDB 5.3 所做的工作之前,优化器在十年内没有任何巨大的演进改进或更改(除了 2003-2005 年添加的一些功能)。它缺少了人们在任何 2010 年代的关于数据库中所期望的基本功能。例如哈希连接(hash joins)或子查询的高效处理。
我们还一直希望逐步提高 MariaDB 处理大型表和大型查询的能力。这要求查询计划具有更好的访问局部性。分批键访问(Batched Key Access)和一定程度上的哈希连接(hash join)为此提供了支持。另一个重要方面是,旧的优化器存在大量性能不佳的问题。
所有更改的概述可以在 http://kb.askmonty.org/en/what-is-mariadb-53 找到。
现在出现在 MariaDB 5.3 中的许多新的优化器功能的开发始于 2006-2008 年,作为未来 MySQL 版本的一部分。在 MariaDB 5.3 中,这些功能得到了完善,并且在某些情况下完全重做。
我们还相信这是在 MySQL 或 MariaDB 中发布过的测试最充分的代码。这一点很重要,因为 MySQL 是一个被广泛采用的产品。我们不能也不会在 MariaDB 的核心组件中引入大量新错误。我们无法接受这样的产品,其他人也无法接受。
包含这些更改的 MariaDB 5.3 Beta 版本现已发布近两个月,我们最近发布了第二个 Beta 版本。在此期间,我们在不断壮大的 MariaDB 社区的帮助下持续稳定产品,社区成员一直在报告他们发现的问题。非常感谢大家!
离我们宣布 5.3 稳定版还有一段时间,但所有的努力已经开始获得回报。除了积极的最终用户反馈,我们还通过早期的基准测试看到了成功的初步迹象,例如:
– DBT-3 测试,
https://lists.launchpad.net/maria-developers/msg04278.html
– 组提交(Group commit),
https://#/#!/notes/mysql-at-facebook/group-commit-again/10150261692455933
需要注意的是,我上面提到的优化器更改并不是 MariaDB 5.3 中唯一的新内容。还有很多其他的改进和新功能。例如上面链接中提到的改进的组提交(Group commit)以及值得特别一提的微秒支持:
– 支持 TIMESTAMP、DATETIME 和 TIME 数据类型的微秒
一个多年来一直被请求的功能 – http://bugs.mysql.com/8523
最后,在 MariaDB 5.3 的稳定工作继续进行的同时,我们也在开发 MariaDB 5.5,它是 MariaDB 5.3 与 MySQL 5.5 合并的版本。这是社区期待已久的事情。我很高兴地告诉大家,我们离 MariaDB 5.5 的 Beta 版本不远了。这将是一个有趣的年尾。
更好的子查询优化和哈希连接是巨大的改进。干得很棒。
那么,更好的数据缓存算法怎么样?
更好的子查询优化和哈希连接是巨大的改进。干得很棒。