热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MariaDB10.1和MySQL5.7在普通商用硬件上的表现

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

#

你读到我的上一篇文章关于 MariaDB 10.1 GA 性能的文章时,你可能会困惑我为什么对 MySQL 5.7 只字未提。原因有两个:首先,MySQL 在那时还不是 GA。其次,MySQL 在 Power8 上运行并不稳定。

这次,我会拿出一个比较基准来对比他们之间的性能差别。我选了一些比较普通的硬件,因为大多数用户将运行这样的主机。用的是一个OVH的SP-64主机。4核英特尔CPU,内存为64G。磁盘一般,但基准又是一个简化的只读OLTP往返内存的工作负载。

为了让事情更有趣,我加了最新的 MySQL 5.6。所以我们现在有4个对比:全新的 MySQL5.7 GA和它的前辈和全新 MariaDB10.1 GA 和它的前身。就不再多说废话了,看结果。

#

对于那些更偏爱数字而非图表的同学:

clientsMariaDB 10.0.21MariaDB 10.1.8MySQL 5.6.27MySQL 5.7.9
1 22166 22748 24456 21499
2 41220 42155 45314 40552
4 70850 72865 78024 69816
8 112328 118933 126892 112442
16 113645 119503 129029 112502
32 113572 119663 127780 112925
64 111003 117255 125526 110663
128 111015 116137 124158 108568
256 111232 115688 116337 102345

所以应该是 MySQL 性能更加优越。但我们能从这些数字中获取的信息远不止这些。让我们看看还能从这些数字中提取到什么内容:

clientsMariaDB 10.1 vs. MariaDB 10.0MySQL 5.7 vs. MariaDB 10.1MySQL 5.7 vs. MySQL 5.6
1 +2,6% -5,5% -12,1%
2 +2,3% -3,8% -10,5%
4 +2,8% -4,2% -10,5%
8 +5,9% -5,5% -11,4%
16 +5,2% -5,9% -12,8%
32 +5,4% -5,6% -11,6%
64 +5,6% -5,6% -11,8%
128 +4,6% -6,5% -12,6%
256 +4,0% -11,5% -12,0%

这种比较的结果是令人惊讶的,MySQL 5.7.9不仅比 MariaDB 10.1.8(我猜你应该阅读,在MariaDB博客)慢,而且它也比 MySQL 的27年6月5日慢得多。这个不幸的趋势也被其他人观察到了。 MariaDB 另一方面可以从 10.0.21 升级至 10.1.8。

基准测试详细信息

在使用基准再次sysbench的。基准是使用单个一百万行的表。使用单个或多个表对这样一个小机器不会产生太大的差别。 my.cnf如下:

[mysqld]
max_cOnnections= 300
table_open_cache = 600
innodb_buffer_pool_size = 512M
performance–schema = false
secure_file_priv = /tmp

注意:最后一行只对 MySQL 5.7 是有意义的。而倒数第二行(禁用性能模式)只对 MySQL 有意义。没错,请确保您禁用性能模式或压低 MySQL 的性能几个百分比。 MariaDB 默认情况下是禁用性能模式的。

用以测试的命令是这样的:

sysbench–0.5 –test=lua/oltp.lua  –oltp–table–size=1000000 \
–oltp–read–Only=on –oltp_point_selects=1000 \
–oltp_sum_ranges=0 –oltp_simple_ranges=0 \
–oltp_order_ranges=0 –oltp_distinct_ranges=0 \
—max–requests=0 —max–time=100 –num–threads=… run

MariaDB 10.1.8 发布下载,MySQL 分支  2015-10/124262.htm

Linux系统教程:如何检查MariaDB服务端版本  2015-08/122382.htm

MariaDB Proxy读写分离的实现 2014-05/101306.htm

Linux下编译安装配置MariaDB数据库的方法 2014-11/109049.htm

CentOS系统使用yum安装MariaDB数据库 2014-11/109048.htm

安装MariaDB与MySQL并存 2014-11/109047.htm

Ubuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10  2014-11/109471.htm

[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB  2014-12/110048htm

MariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里

英文原文:MariaDB 10.1 and MySQL 5.7 performance on commodity hardware


推荐阅读
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了一个误删Oracle数据文件导致数据库无法打开的问题,并提供了解决方式。解决方式包括切换到mount状态、离线删除报错的数据文件等。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 本文介绍了在PostgreSQL中批量导入数据时的优化方法。包括使用unlogged表、删除重建索引、删除重建外键、禁用触发器、使用COPY方法、批量插入等。同时还提到了一些参数优化的注意事项,如设置effective_cache_size、shared_buffer等,并强调了在导入大量数据后使用analyze命令重新收集统计信息的重要性。 ... [详细]
  • 1Oracle三层权限体系【复习】1、Oracle的权限体系划分为三个层次 ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
author-avatar
杨浩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有