现在选择继续使用MySQL或抛弃它切换到MariaDB有足够的理由。
现在把目光移到benchmark上面来,它其实也是由MariaDB团队开发的,并加了一下额外的说明。这篇博客提到了一个有趣的地方:把MYSQL5.6的线程数一直增加到16,性能都很好,但是超过了16的话,尽管性能也有提升一点点,但比较发现,远不如其他版本(包括MairaDB-5.5.28a和MairaDB-10.0.1;参考文章顶部的性能测试图)。这在单核计算机里面试图达到多核多线程的效果的并行程序时,都会有此类的通病。如果算法设计得当,随着CPU核心数的增加,性能也会跟着提升。当然问题是,你必须在并行程序中处理好2个方面:(1)跨多核的多线程问题(2)矢量化。这也是当前面向多核编程的两个方向,你编写的必须能很好的控制这两个方面。
如果没有正确的编写代码将会得到一个共同的结果,即在用8到16个线程的开始你就想看到好的结果,但在这些线程运行之后你不会看到你期望的结果。你将会看到这个问题,这意味这可能是算法问题。(这也不是超线程或是硬件线程造成的)这就是我们在这里看到MySQL 基准的问题。对于我来说,这就是MySQL规模化产生问题的迹象,这也是令人担心的原因之一。MariaDB在同样的基准中也有一些小问题,但是比MySQL要轻微的多,只能说是勉强吧;我推测这个问题在并行计算中可能不会出现。
我也不知道在测试中怎样才能很好的根据不同机器指定不同的编译器来与之匹配。当你为Intel编译代码时,你需要为目标机器编译生成合适的SIMD代码;如果不匹配,你将不会得到你所期望执行的矢量代码。为了能正确处理,你需要在代码中插入正确的编译指示代码,然后要写下正确的矢量算法,最后在选择合适的编译器。我知道这样看起来很愚笨,但我看过一个发行产品用错误的编译器所造成的结果是你无法想象的。好歹,很明显,MySQL代码在多核和矢量化中的优化没有MariaDB好。
(我真正想看到的是,MySQL或MariaDB的一个分支为Intel Xeon Phi处理器核心做一个特别的编译,使代码转移到61 核心协处理器,并且有人能尝试加速所有244个线程。可惜我没有接触过这样的机器。同样的,如果你想学习更多关于向量化和并行方式编写代码方面的知识,检索最近Intel公司 James Jeffers 与 James Reinders写的文章“Intel Xeon Phi 协处理器高性能编程”。)
很明显,MariaDB的新特性并不是都这么好——你可能需要连接 Cassandra 来获取一些数据,但是我很怀疑你会使用 MySQL 去做这件事情。关于这个平台上提供的其他引擎也有类似的争议。MariaDB的性能看起来在多核环境下表现不错,但是我强烈怀疑其实通过调优,MySQL 也可以做到。
所以你还应该转移到 MariaDB 吗?
首先,考虑潜在的风险(高层管理者都喜欢听风险和利益)。如果你迁移到 MariaDB,你可能会使用特定于 MariaDB 的特性(但目前似乎还不可能),然后发现很难再用很小的资源切换回 MySQL 。但是我想说的是,这个并不真的是一个风险,下面从更大的范围里讨论一些问题。
考虑一下关于 Oracle 以及 Oracle 对 MySQL 授权的问题。免费以及开源的 MySQL 要与 Oracle 极具竞争力的专有软件竞争。那么,Oracle 会做什么事情阻止 MySQL 的开发呢?(一些人可能会说,这样的事情已经发生了)
那么,MySQL 和 MariaDB 的兼容性如何呢?MariaDB 团队正尽力去保持对 MySQL 的全面兼容,他们继续向源码中提交 bug 修复。但那些新特性(以及版本方案)表明,尽管尽了最大的努力,这两个平台还是会继续分裂。
如果 Oracle 向 MySQL 添加 MariaDB 不采纳的新特性,这些特性明显不会对你可用。如果你正在使用 MySQL 不具备的 MariaDB 特性,你将不能轻易地切换到 MySQL 。 MariaDB 表示这样的情况很可能存在一段时间,然而你也不能说相同的情况不会在 MySQL 中出现。就是说,即使 MariaDB 的新特性并不那么有用,但是(在我看来)已经有足够的理由从 MySQL 迁移到 MariaDB 了。
(在结束这篇文章前说一件事:即在 blogosphere 的作者提出过的一个关键问题——服务协议。如果在你的公司总经理疯狂到向 Oracle 购买了服务协议来帮助你开发管理 MySQL 数据库,那么你可能愿意停留在MySQL 以避免因为违反协议而造成的财务和法律上的问题。但除此以外,我看不到什么理由继续使用 MySQL 数据库)
最新内容请见作者的GitHub页:http://qaseven.github.io/

MariaDB和MySQL性能测试比较相关推荐

  1. mysql和mariadb可以同时使用吗,MariaDB与MySQL在一台服务器同时运行

    [root@HE3 ~]#groupaddmariadb-g 513 [root@HE3 ~]#useradd -u 513-gmariadb-s /sbin/nologin -d /home/mar ...

  2. MySQL 性能测试

    MySQL 性能测试 MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行.最终目标是提交 SELECT 语句查找数据行,而不是排除数据 ...

  3. linux mysql 知乎_在 Linux 上安装 MariaDB 或 MySQL | Linux 中国

    开始在 Linux 系统上使用开源的 SQL 数据库吧. (本文字数:2332,阅读时长大约:3 分钟) MariaDB 和 MySQL 都是使用 SQL 的开源数据库,并且共享相同的初始代码库.Ma ...

  4. mariadb 和mysql主从_MariaDB主从同步

    MariaDB是MySQL的一个主要的开源分支.由于oracle收购MySQL之后,担心将其闭源,MySQL之父monty主导开发了MariaDB,用自己小女儿的名字命名.Maria DB完全兼容My ...

  5. mysql和mariadb可以同时使用吗_10分钟实现MariaDB与MySQL在一台服务器同时运行

    [root@HE3 ~]#groupaddmariadb-g 513 [root@HE3 ~]#useradd -u 513-gmariadb-s /sbin/nologin -d /home/mar ...

  6. MariaDB(MySQL)数据库的介绍及使用示例

    MySQL or MariaDB: 层次模型 --> 网状模型 --> (IBM Codd)关系模型 --> No-SQL关系型数据库管理系统(RDBMS):范式:第一范式,第二范式 ...

  7. mariadb mysql版本对应_弹指神通MariaDB——MariaDB与MySQL各版本的区别

    1 MariaDB的性质 MariaDB从MySQL衍生而来,作为完全开源的一款数据库产品.关于MariaDB更详细的信息其实是在MariaDB.org中.在MariaDB download中也做了详 ...

  8. 整理了MariaDB和MySQL数据库历年发布版本和对应关系,方便记忆命令。

    一,目前最新版本 MariaDB 10.5.8 10.4.17 10.3.27 10.2.36 MySQL 8.0.23 二,oracle MySQL版本和MariaDB版本对应表: MariaDB版 ...

  9. mariadb与mysql

    MySQL数据库介绍 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理. MySQL的历史最早可以 ...

  10. 【MariaDB】安装MariaDB,与MySQL并存

    原文链接:https://mariadb.com/kb/en/installing-mariadb-alongside-mysql/ xiaomo译------ MariaDB为可替代MySQL的增强 ...

最新文章

  1. 华为鸿蒙系统内部消息,华为鸿蒙系统内部曝光,并且将于年底发布?网友:还能再假点?...
  2. linux中menu命令,menucofig 详解
  3. 三、HDFS中的Python 和JavaAPI
  4. PRD:「FITLIFE」小程序产品需求文档(用户端)
  5. windows7快捷键
  6. 测量仪图片_介绍一款电线电缆检测智能影像测量仪
  7. 贪吃蛇大作战游戏攻略
  8. php 分页类 bootstrap,ThinkPHP分页使用bootstrap样式
  9. 锐起无盘服务器ip设置,锐起无盘系统教程dhcp
  10. H264/AVC-NALU解析
  11. cad插件物料自动排版_IMEX NO.63:园林景观专业CAD图库
  12. CAD图层管理技巧 使画图效率事半功倍
  13. 转载-信息化与系统集成技术-全面解析工业4-0和云计算、大数据
  14. pandas学习-task2
  15. 冶金物理化学复习【6】吉布斯自由能的变化
  16. 怎么管理一个测试团队
  17. 清华大学计算机系学几年,清华大学16位学霸简历吓坏网友
  18. 随机梯度下降的动量法 Momentum
  19. 发现U盘不显示盘符的解决办法
  20. unity抠人像原理_抠出精细发丝人像图片的PS抠图教程

热门文章

  1. [导入][ASP.NET 控件实作 Day14] 继承 CompositeControl 实作 Toolbar 控件
  2. 计算某个目录下所有文件的MD5值
  3. javascript数据结构——栈
  4. Java 动态绑定/多态
  5. zoj[3868]gcd期望
  6. 来自平时工作中的css知识的积累---持续补充中
  7. 设计模式一(抽象工厂模式)
  8. [面试]synchronized
  9. Android binder机制---概述
  10. 201671010127 2016—2017—2 Java学习周结