选择哪个MySQL Fork /版本?

时间:2010-03-15 21:13:34

标签: mysql

正如大多数人所知,Sun收购了MySQL(后来Oracle收购了Sun),在这些收购过程中,MySQL社区中有很多FUD导致了各种分支的创建。

今天我们有来自MySQL的MySQL,Percona(XtraDB)MySQL,OurDelta MySQL,MariaDB,Drizzle等等。这就把我们带到了问题的根源。

我们正在升级我们的数据库(硬件/软件),我想知道应该使用哪种叉子。每个人都有自己的优点/缺点。我们目前在8核机器上使用MySQL / Linux的MySQL 5.0.x.我们的新硬件是 32核和32GB内存的怪物,通过FC连接到快速NetApp存储。

我想从MySQL坚持使用MySQL,但我听说过MySQL 5.1在许多核心上的表现有多糟糕。我也听说MySQL 5.4在多核机器上表现更好,但仍然没有生产就绪。此外,我还听说过Percona构建的许多好东西。

这是我目前所知道的:

来自MySQL的MySQL 5.1:可靠的选择,但在大型机器上无法很好地扩展

Percona:规模不错,良好的支持公司。我对它没有多少经验

MariaDB:除了它是由原始MySQL开发者(包括Monty)创建之外,对它不太了解

OurDelta:不太了解

细雨:主要针对云计算进行了优化

我想知道关于这个问题的一般概念是什么。我应该使用哪种版本/版本?你们是如何选择你的版本/版本的?

谢谢!

7 个答案:

答案 0 :(得分:13)

你提到的所有'forks'(除了Drizzle)都重新启动了MySQL的新官方版本。我认为fork这个词可以引导你走错路 - 因为目的只是提供市场修改。我在这里写到了这个:

http://mtocker.livejournal.com/50931.html

由于他们重新使用MySQL,并且MySQL 5.0处于“扩展维护”状态,因此只能修复主要漏洞。这意味着你想要转向5.1。如果我们使用这个假设,那么它会从你的决定中削减OurDelta - 因为它们只是5.1 MariaDB构建/打包合作伙伴。

我认为你也可以排除Drizzle,因为它目前是预测试版。他们计划在夏季结束前进行测试 - 但它仍然比你想要的要早得多。我真的不认为你使用数据库还没有准备好生产,所以这也排除了MySQL 5.5。

所以这留下了Percona Server,官方MySQL 5.1和MariaDB。确实,5.1具有很多内核的可扩展性差,但如果启用InnoDB插件则更好。

我在此处的其余回复是有偏见的 - 我为Percona工作:

Percona XtraDB具有比MySQL 5.1 + InnoDB插件更多的CPU可扩展性修复程序。那些重要的内容在这里介绍:

http://www.percona.com/docs/wiki/percona-xtradb:features:start

我可以特别评论一件重要的事情就是这个: http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_split_buf_pool_mutex

答案 1 :(得分:7)

就个人而言,我认为今天需要设置新MySQL安装的每个人都应该使用MariaDB。 MariaDB基于最新的MySQL 5.1,主动维护(包括针对MySQL报告的bug的修复)和Percona XtraDB / InnoDB插件包。

我甚至不知道“fork”是否准确描述了Maria,因为他们致力于跟上current releases of MySQL

简而言之:MariaDB 5.1 = MySQL 5.1 + Percona XtraDB + additional useful patches +积极开发和维护

2011年末至2012年5月更新:我从MariaDB切换到Percona Server以获得MySQL 5.5但我打算在Maria团队拥有稳定的基于5.5的版本后切换回来。我认为今天需要设置新MySQL安装的每个人都应该运行Percona Server。如果您使用 SSD ,则*必须*运行Percona Server。

2013-2018 :一直忙着经营Percona服务器5.6。

2018 :升级到Percona服务器5.7,然后几乎立即升级到MySQL 8.0。 [此时,我不知道如何讨论MySQL 8,Percona Server 5.7和MariaDB 10之间的差异,我不能说为什么你可能想要选择其中一个而不是其他人]

答案 2 :(得分:4)

只是对此的更新。我们选择与Percona一起去,我们不能更快乐。 Percona家伙肯定知道他们的东西,并跟上新技术。只需结账http://www.mysqlperformanceblog.com/顶尖软件加上顶尖人才和大力支持,你就不会出错。

答案 3 :(得分:2)

我认为完全注销MySQL还为时尚早。我并不热衷于Sun / Oracle获得缰绳,但我不清楚他们将采取什么方向。无论如何,我要等一年才认真考虑改用叉子。时间将告诉哪个项目有生存的资源和动力,或者是否需要分叉。

答案 4 :(得分:2)

使用MariaDB。他们最近just released a version。 Maria引擎也比MyISAM好多了。通过开源项目,您可以去创始人去的地方。

答案 5 :(得分:1)

谷歌有一个内存库补丁,据说可以提高多线程/核心mysql安装的性能。据推测,性能瓶颈存在于内存分配例程中,并且会从4个核心开始表现出来。我目前正在运行一个双处理盒,每个处理器有4个核心,没有内存库补丁,5.1.x没有问题。

我最大的建议是安装5.4并针对它运行基准测试套件。如果它完成了这项工作,那就去吧。各种叉子的碎片确实很糟糕,但也许它会是最好的。至少创始人现在有资金为他们自己的方向筹款......我不会盲目地遵循他们的建议......最初建立mysql基础设施花了很多时间和精力,虽然它不会支持第一次参加比赛的球队是有害的,不能保证他们第二次能成功。所以......支持他们,但在你知道可以依赖他们之前不要依赖他们。

答案 6 :(得分:0)

如果你正在升级你的数据库,你应该考虑其他FOSS DBMS或数据管理软件系统,而不仅仅是MySQL。

例如,如果您的数据库工作负载是分析而不是事务,并且数据主要是批量添加的,那么您应该考虑使用MonetDB,一个柱状DBMS,比MySQL时快1.5-2个数量级。仅进行分析。

另一个选项是PostgreSQL。它更像是面向事务 - 比如MySQL;事实上,他们similar足以成为合适的竞争对手。有arguments for preferring PostgreSQLarguments for preferring a MySQL variant

DB-engines.com上,您可以找到其他可能相关的DBMS,FOSS和闭源/商业广告。