Skip to content

Percona tpcc-mysql派生分支, 增加自增列主键,取消外键,降低压测过程输出频率

Notifications You must be signed in to change notification settings

lmtwga/tpcc-mysql

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tpcc-mysql - A fork of percona tpcc-mysql

简介

tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于MySQL基准测试。
它生成的测试表我认为有2个问题:
1、没有自增列作为主键。如果仅作为基准测试问题不大,但和我们实际生产中的设计模式可能有一定区别,相信大多数人还是习惯使用自增列作为主键的,如果你没这个习惯,那么可以忽略本文了;
2、使用外键。个人认为MySQL对外键支持并不是太好,并且一定程度上影响并发性能,因此建议取消外键,仅保留一般的索引。

基于上面这2点,我微调了下tpcc-mysql的源码,主要改动有下面几个地方:
1、所有表都加上自增列做主键;
2、取消外键,仅保留普通索引;
3、降低tpcc测试过程中的输出频率,避免刷屏;
4、修改了表结构初始化DDL脚本以及load.c文件;

利用该分支版本进行tpcc压力测试的结果表明,有自增列主键时,其TpmC相比没有自增列主键约提升了10%,还是比较可观的。

快速使用

1、环境初始化
1.1 创建tpcc数据库
mysqladmin -S path/mysql.sock -u user -p passwd create tpcc

1.2 初始化表结构
mysql -S path/mysql.sock -u user -p passwd -f tpcc < create_table-aidpk.sql

2、编译tpcc-mysql
2.1 进入tpcc-mysql源码目录,执行 make,编译过程无报错即可
cd path/tpcc-mysql
cd src
make

编译完成后,会在上一级目录下生成 tpcc_load、tpcc_start这2个可执行文件。

3、开始测试
3.1 利用tpcc_load初始化测试数据,用法和原先的一样
usage: tpcc_load [server] [DB] [user] [pass] [warehouse]

3.2 利用tpcc_start开始测试,用法也和原先的一样

3.3 自动化测试脚本
根据各自的测试环境,调整 run_tpcc.sh 脚本里的相应参数,运行该脚本可进行自动化测试。

关于tpcc-mysql的详细用法,可参考文章:
1、TPCC-MySQL使用手册:http://imysql.com/2012/08/04/tpcc-for-mysql-manual.html

最后

可以和percona官方分支版本进行对比测试,看看二者的TpmC结果相差多少。
有任何问题请联系我。

About yejr

叶金荣(常用ID:yejr)早期混迹于linuxforum、linuxsir等社区,后来转移到chinaunix。2006年建站至今,差不多是国内最早的MySQL技术博客。

从事过LAMP开发,后成为专职MySQL DBA,现围绕运维领域打杂,擅长MySQL优化、数据库架构设计及对比基准压测。

目前仍以MySQL DBA自居,偶尔也会作为Consultant,2012年被提名成为ORACLE ACE(MySQL),目前仍不遗余力推广MySQL。

和几位同行发起成立 ACMUG 以及 中华数据库协会

微信公众号:MySQL中文网、微博:@叶金荣、QQ:4700963

QQ群:125572178272675472

邮箱:[email protected]

搜索引擎中的我:谷歌Google360搜索百度搜狗

About

Percona tpcc-mysql派生分支, 增加自增列主键,取消外键,降低压测过程输出频率

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 84.2%
  • Shell 13.8%
  • Python 1.7%
  • Makefile 0.3%