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效率也越高。

评论

学习学习