使用TPC-H 进行MySQL数据库性能测试

本文介绍了如何在Linux环境下使用TPC-H进行MySQL数据库性能测试。首先,从指定链接下载并修改TPC-H源文件以适应MySQL,然后编译生成100G的测试数据。接着,创建数据库表结构并导入数据。最后,执行单表和多表查询以评估性能。测试结果和更多资源链接可供参考。
摘要由CSDN通过智能技术生成

本文简单记叙在Linux环境下通过TPC-H生成MySQL数据库测试数据的步骤,作为后续参考。

生成数据的量级如下,数据库需要300G左右空间。

表名 数据行数 量级
customer 15000000 1.5千万
lineitem 600037902 6亿
nation 25  
orders 150000000 1.5亿
part 20000000 2千万
partsupp 80000000 8千万
region 5  
supplier 1000000 1百万

1下载TPC-H:https://download.csdn.net/download/kkdelta/12390317

这个源文件针对mysql做了定制修改

修改1:makefile (如果是生成其它数据库类型的测试数据,请修改DATABASE= 对应数据库)

CC      = gcc
# Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
#                                  SQLSERVER, SYBASE, ORACLE, VECTORWISE
# Current values for MACHINE are:  ATT, DOS, HP, IBM, ICL, MVS, 
#                                  SGI, SUN, U2200, VMS, LINUX, WIN32 
# Current values for WORKLOAD are:  TPCH
DATABASE= MYSQL
MACHINE = LINUX
WORKLOAD = TPCH

修改2:头文件添加了如下信息,默认没有MYSQL

#ifdef MYSQL
#define GEN_QUERY_PLAN  ""
#define START_TRAN      "START TRANSACTION"
#define END_TRAN        "COMMIT"
#define SET_OUTPUT      ""
#define SET_ROWCOUNT    "limit %d;\n"
#define SET_DBASE       "use %s;\n"
#endif

2解压编译

#tar -xzvf 

#进入tpch_2.18.0_rc2/dbgen 目录执行 make命令

3生成数据,生成100G测试数据,更多dbgen 参数请参照https://github.com/electrum/tpch-dbgen?spm=a2c4g.11186623.2.12.49503a21XMT2IL

nohup ./dbgen -f -s 100 >out.txt 2>&1 &

4导入数据

41. 创建数据库表结构语句

CREATE TABLE `customer` (
  `C_CUSTKEY` int(11) NOT NULL,
  `C_NAME` varchar(25) NOT NULL,
  `C_ADDRESS` varchar(40) NOT NULL,
  `C_NATIONKEY` int(11) NOT NULL,
  `C_PHONE` varchar(15) NOT NULL,
  `C_ACCTBAL` decimal(12,2) NOT NULL,
  `C_MKTSEGMENT` varchar(10) NOT NULL,
  `C_COMMENT` varchar(117) NOT NULL,
  PRIMARY KEY (`C_CUSTKEY`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



CREATE TABLE `lineitem` (
  `L_ORDERKEY` bigint(20) NOT NULL,
  `L_PARTKEY` int(11) NOT NULL,
  `L_SUPPKEY` int(11) NOT NULL,
  `L_LINENUMBER` bigint(20) NOT NULL,
  `L_QUANTITY` decimal(12,2) NOT NULL,
  `L_EXTENDEDPRICE` decimal(12,2) NOT NULL,
  `L_DISCOUNT` decimal(12,2) NOT NULL,
  `L_TAX` decimal(12,2) NOT NULL,
  `L_RETURNFLAG` varchar(1) NOT NULL,
  `L_LINESTATUS` varchar(1) NOT NULL,
  `L_SHIPDATE` date NOT NULL,
  `
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值