mysql tpch_数据库MySQL与TPCH

本文介绍如何在MySQL上部署TPC-H基准测试,包括安装MySQL组件、下载及配置TPC-H、创建数据库和用户、运行DDL脚本、生成及加载测试数据等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装mySQL

先安装: MySQL Server,

再安装: MySQL Client, MySQL Query Browser, MySQL Navigator, MySQL Administrator,反正能装的我都装了,这个过程很简单

2、下载TPC-H

现在的最新版是2.14,一共47MB.

3、解压到虚拟机

4、生成数据并加载到MySQL

1) 打开终端,取得root权限

2)创建MySQL用户、数据库、及授权

mysql -u root -p

mysql> CREATE USER 'tpch'@'%' IDENTIFIED BY 'tpch';

mysql> CREATE DATABASE tpch;

mysql> GRANT ALL ON tpch.* to 'tpch'@'%';

mysql> USE tpch;

3)运行tpch目录下的dss.ddl文件,创建tpch数据库中的表

mysql> \. tpch/gen/dss.ddl

4)然后在tpch文件目录下,把makefile复制并改名成makefile,接着修改makefile文件

shell> cp makefile.suite makefile

shell> vim makefile

makefile中相应项后面填写:

CC      = gcc

# Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)  #                                  SQLSERVER, SYBASE  # Current values for MACHINE are:  ATT, DOS, HP, IBM, ICL, MVS,   #                                  SGI, SUN, U2200, VMS, LINUX, WIN32   #

Current values for WORKLOAD are:  TPCH

DATABASE= SQLSERVER

MACHINE = LINUX

WORKLOAD = TPCH

5)修改tpch.h文件

修改其中的SQLSERVER段为:

#ifdef  SQLSERVER

#define GEN_QUERY_PLAN        "EXPLAIN;"

#define START_TRAN                "START TRANSACTION;\n"

#define END_TRAN                "COMMIT;\n"

#define SET_OUTPUT                ""

#define SET_ROWCOUNT                "limit %d;\n"

#define SET_DBASE                "use %s;\n"

#endif

6)执行makefile

shell> make

7)生成需要用的数据

shell> ./dbgen -s 1

-s 数据规模因子,1为1G的数据量

8)修改tpch目录下的dss.ri文件

1.删除 "CONNECT TO TPCD;"

2.删除所有的 "TPCH."(注意有个点)

3.删除所有的"COMMIT WORK;"(注意分号也要删除)

9)登录MySQL,并载入之前生成的数据进MySQL

shell> mysql -u tpch -p

mysql> use tpch;

mysql> LOAD DATA LOCAL INFILE 'customer.tbl' INTO TABLE CUSTOMER FIELDS TERMINATED BY '|';

mysql> LOAD DATA LOCAL INFILE 'orders.tbl' INTO TABLE ORDERS FIELDS TERMINATED BY '|';

mysql> LOAD DATA LOCAL INFILE 'lineitem.tbl' INTO TABLE LINEITEM FIELDS TERMINATED BY '|';

mysql> LOAD DATA LOCAL INFILE 'nation.tbl' INTO TABLE NATION FIELDS TERMINATED BY '|';

mysql> LOAD DATA LOCAL INFILE 'partsupp.tbl' INTO TABLE PARTSUPP FIELDS TERMINATED BY '|';

mysql> LOAD DATA LOCAL INFILE 'part.tbl' INTO TABLE PART FIELDS TERMINATED BY '|';

mysql> LOAD DATA LOCAL INFILE 'region.tbl' INTO TABLE REGION FIELDS TERMINATED BY '|';

mysql> LOAD DATA LOCAL INFILE 'supplier.tbl' INTO TABLE SUPPLIER FIELDS TERMINATED BY '|';

10)执行tpch目录下的dss.ri

mysql> \. dss.ri 11)由于查询中使用的是小写表名,而使用dss.ddl生成的表名是大写的,所以转换表名成小写

mysql> alter table NATION rename nation;

mysql> alter table SUPPLIER rename supplier;

mysql> alter table REGION rename region;

mysql> alter table PARTSUPP rename partsupp;

mysql> alter table PART rename part;

mysql> alter table ORDERS rename orders;

mysql> alter table LINEITEM rename lineitem;

mysql> alter table CUSTOMER rename customer;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值