优化系列 | MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试

一、简述
是由原来 MySQL 的作者 Michael Widenius 创办的公司所开发的免费开源的数据库服务器。MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX 存储引擎。(摘自:http://baike.baidu.com/view/2521908.htm)
简单的说:MariaDB是MySQL的一个变种,可以作为官方MySQL版本的一个替代品,并且在一些特性上做了增强。
MariaDB的官网见:http://mariadb.org

二、测试环境
2.1 详细测试环境见下图:

2.2 自动化测试脚本例子见下:

#!/bin/sh
#export LD_LIBRARY_PATH=/usr/local/mysql/lib/ 

. ~/.bash_profile >/dev/null 2>&1

BASEDIR="/home/tpcc-mysql"
cd $BASEDIR
mkdir -p $BASEDIR/logs

exec 3>&1 4>&2 1>> tpcc.log 2>&1

#执行tpcc测试的数据库IP
DBIP=localhost
DBUSER=‘root‘
DBPASS=‘‘
#测试模式:1000个仓库
WIREHOUSE=1000
DBNAME="tpcc${WIREHOUSE}"
#数据预热时间:120秒
WARMUP=120
#执行测试时长:1小时
DURING=3600
#测试模式
MODE="percona55_innodb_buf26G_1bp_1000dw_xfs_deadline_6disk_raid10"

#初始化测试环境
if [ -z "`mysqlshow -h$DBIP -u$DBUSER -p$DBPASS|grep -v grep|grep \"$DBNAME\"`" ] ; then
 mysqladmin -h$DBIP -u$DBUSER -p$DBPASS -f create $DBNAME
 mysql -h$DBIP -u$DBUSER -p$DBPASS -f $DBNAME  /proc/sys/vm/drop_caches; /etc/init.d/mysql start; sleep 60

#开始执行tpcc测试
./tpcc_start -h $DBIP -d $DBNAME -u $DBUSER -p "${DBPASS}" -w $WIREHOUSE -c $THREADS -r $WARMUP -l $DURING -f ./logs/tpcc_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE}.res >> ./logs/tpcc_runlog_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE} 2>&1
done

CYCLE=`expr $CYCLE + 1`
done

2.3 重点配置选项差异对比

三、测试结果
备注:

独享是指:使用独立表空间模式;
1bp/8bp 分别指:设置innodb buffer pool instance为1或者8。

3.1 TPCC数据初始化对比

3.2 TpmC结果对比

本次对比测试中,在模式 "percona 5.6.6-m9-56(独享,1 bp)"(黄色底) 下的综合TpmC效率最高。因此也直接以它为基准,对比了其他几种测试模式的TpmC效率。

四、小结
本次只做了TpmC简单对比基准测试,MySQL 5.6以及MariaDB所宣称的各种改进以及特性暂未关涉及。
从测试结果来看,Percona 5.6的性能仍然有较大优势;另外,和以前版本对比,在一定线程数之内,并发线程数越多,TpmC效率也越高。

--------------------------------------分割线--------------------------------------

知数堂 (http://zhishuedu.com)培训是由资深MySQL专家叶金荣、吴炳锡联合推出的专业优质培训品牌,主要有MySQL DBA实战优化和Python运维开发课程,是业内最有良心、最有品质的培训课程。

优化系列 | MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试

时间: 2024-08-26 16:52:08

优化系列 | MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试的相关文章

优化系列 | MySQL Cluster 7.2.7内存表和磁盘表对比测试

一.准备工作自从2009年测试MySQL Cluster 7.0之后,就没怎么关注过它,发展实在太慢了,还有很多不靠谱的地方.前阵子退出7.2.7版本后,看了看新特性介绍,号称性能比以往版本高了很多,于是再关注并进行测试.部署过程不多说,下载PRM包后直接安装即可.共10个节点,其中1个管理节点,其他9个节点同时作为数据和SQL节点,所有节点服务器配置图:MySQL Cluster管理节点关键配置见下: # #ndb config.ini # [TCP DEFAULT] SendBufferMe

优化系列 | MySQL 5.6.10 vs Percona 5.6.6之TPCCC性能测试

MySQL官方5.6.10版本出来后,号称比以往版本性能提升了很多,实际测试了下,确实有所提升,但相比Percona 5.6.6在性能方面还是没有优势. 1.tpcc测试结果点击看大图 2.测试环境 3.InnoDB关键配置选项 备注:1.ring replication:是指3个节点搭建环形复制,各自分别都是master/slave.在测试过程中,还尝试模拟master宕机,slave任意切换master,验证GTID模式下的数据可靠性,在测试模式下,确实保证了数据可靠性.2.bp8_fact

优化系列 | Discuz论坛MySQL通用优化

之前分别在2006和2009年写过两篇关于discuz优化的文章:MySQL优化 之 Discuz论坛优化.MySQL优化 之 Discuz论坛优化 -- 续,没想到都6年过去了,discuz还在坚挺的使用MyISAM引擎,堪比罚改委...今日帮朋友优化号称日均数百万PV,数百万UV的论坛,后台DB采用R710(16G Ram,PERC 6/i 256MB BBU,4块 15K RPM SAS盘做raid 1+0,ext3文件系统,E5620 * 2),这个配置看似也不错了,不过压力仍然较大,大

(转)MySQL优化系列

原文:http://blog.csdn.net/jack__frost/article/details/71194208 数据库,后端开发者必学,而且现在以MySQL居多.这个系列将系统化MySQL一些高级用法.打算先讲很多人关注的使用方式(增删改查以及其优化),然后就讲数据库和表的操作(很多我们学习忽略的地方),接着就是引擎还有更高级的查询等等.OK,不多说,Let's go! 本系列会逐步更新,从基本知识总结,到sql优化,索引设计优化,存储过程使用优化......并且到后面会给出一些方案设

Mysql优化系列之数据类型优化

本篇是优化系列的第一篇:数据类型 为了不产生赘述,尽量用简洁的语言来描述. 在选择数据类型之前,首先要知道几个原则: 更小的通常更好 尽量使用可以正确存储数据的最小数据类型.更小的数据类型意味着更快,占用更少的磁盘,内存以及缓存,以及处理时间 简单就好 这是出于操作数据类型的效率和代价考虑.整型比字符型操作代价更低,因为字符集和校对规则是字符处理比整型更复杂 两个例子:使用Mysql内建的datatime而不是字符串存储时间,使用整型而不是IP字符串存IP地址 尽量避免NULL 这是个很烦人的值

Mysql优化(出自官方文档) - 第八篇(索引优化系列)

目录 Mysql优化(出自官方文档) - 第八篇(索引优化系列) Optimization and Indexes 1 Foreign Key Optimization 2 Column Indexes 3 Column Indexes && Multiple-Column Indexes 4 Comparison of B-Tree and Hash Indexes 5 Use of Index Extensions 6 Invisible Indexes 7 Descending In

MySQL 性能优化系列之一 单表预处理

MySQL 性能优化系列之一 单表预处理 背景介绍 我们经常在写多表关联的SQL时,会想到 left jion(左关联),right jion(右关联),inner jion(内关联)等. 但是,当表中数据量过大时,如果没有写好查询条件或者查询条件书写的先后顺序不同,可能会有明显的性能差别. 近期,有个同事遇到一个SQL查询比较慢的问题:tableA,tableB,tableC三张表联合查询的SQL,查询用时将近50s. 原因分析 1.分别确认3张表的数据量 tableA:3千万+ 条记录: t

网站优化之mysql优化

一,网站优化之mysql优化:1.前缀索引,可以通过前缀去识别唯一性,把这个前缀作为索引内容,可以节省存储索引的空间,从而提高索引的查询速度.distinct 排重操作2,2.in条件索引使用同时查询出id为1,3,6select * from where id =1:select * from where id =3:select * from where id =6:select * from where id in(1,3,6): //in条件可以使用到索引3,全文索引文本字段才能够建立全

Expert 诊断优化系列-------------针对重点语句调索引

上一篇我们说了索引的重要性,一个索引不仅能让一条语句起飞,也能大量减少系统对CPU.内存.磁盘的依赖.我想上一篇中的例子可以说明了.给出上一篇和目录文链接: SQL SERVER全面优化-------索引有多重要? SQL SERVER全面优化-------Expert for SQL Server 诊断系列 书接前文,我们知道了索引的重要,也知道了索引怎么加,那么我们应该往那些语句加?语句一条一条漫无目的的优化么?我怎么找出系统的问题语句?怎么样的一个优先级?  很多对数据库了解不是很多的人,