链接
https://help.aliyun.com/document_detail/405018.html
阿里云团队已经把里面的benchmarksql.tar.gz已经对mysql进行定制,比较方便
Mycat2在只涉及单库分表或一个mysql,无论使用XA还是Proxy都能通过TPC-C测试,因为事务仍然是本地事务
导入数据使用下面命令
//tpcc_load [server] [DB] [user] [pass] [warehouse]
server:数据库 IP
DB:数据库名称
user:用户名
pass:密码
warehouse:仓库数量
# ./tpcc_load 127.0.0.1 8066 tpcc root 123456 10
运行测试
# ./tpcc_start --help
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
./tpcc_start: invalid option -- '-'
Usage: tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file -t trx_file
# ~/tpcc-mysql/tpcc_start -h 127.0.0.1 -P 8066 -d tpcc -u root -p 123456 -w 10 -c 10 -r 120 -l 300 -f /tmp/tpcc_mysql.log -t /tmp/tpcc_mysql.rtx
或者
cd benchmarksql/run
./runBenchmark.sh props.mysql
建表语句
CREATE DATABASE if not exists tpcc;
USE tpcc;
CREATE TABLE config (
cfg_name VARCHAR(30) PRIMARY KEY,
cfg_value VARCHAR(50)
);
CREATE TABLE warehouse (
w_id INTEGER NOT NULL,
w_ytd DECIMAL(12,2),
w_tax DECIMAL(4,4),
w_name VARCHAR(10),
w_street_1 VARCHAR(20),
w_street_2 VARCHAR(20),
w_city VARCHAR(20),
w_state CHAR(2),
w_zip CHAR(9),
PRIMARY KEY (w_id)
) dbpartition BY HASH(`w_id`);
CREATE TABLE district (
d_w_id INTEGER NOT NULL,
d_id INTEGER NOT NULL,
d_ytd DECIMAL(12,2),
d_tax DECIMAL(4,4),
d_next_o_id INTEGER,
d_name VARCHAR(10),
d_street_1 VARCHAR(20),
d_street_2 VARCHAR(20),
d_city VARCHAR(20),
d_state CHAR(2),
d_zip CHAR(9),
PRIMARY KEY (d_w_id, d_id)
) dbpartition BY HASH(`d_w_id`);
CREATE TABLE customer (
c_w_id INTEGER NOT NULL,
c_d_id INTEGER NOT NULL,
c_id INTEGER NOT NULL,
c_discount DECIMAL(4,4),
c_credit CHAR(2),
c_last VARCHAR(16),
c_first VARCHAR(16),
c_credit_lim DECIMAL(12,2),
c_balance DECIMAL(12,2),
c_ytd_payment DECIMAL(12,2),
c_payment_cnt INTEGER,
c_delivery_cnt INTEGER,
c_street_1 VARCHAR(20),
c_street_2 VARCHAR(20),
c_city VARCHAR(20),
c_state CHAR(2),
c_zip CHAR(9),
c_phone CHAR(16),
c_since TIMESTAMP,
c_middle CHAR(2),
c_data VARCHAR(500),
PRIMARY KEY (c_w_id, c_d_id, c_id)
) dbpartition BY HASH(`c_w_id`);
CREATE sequence hist_id_seq;
CREATE TABLE history (
hist_id INTEGER,
h_c_id INTEGER,
h_c_d_id INTEGER,
h_c_w_id INTEGER,
h_d_id INTEGER,
h_w_id INTEGER,
h_date TIMESTAMP,
h_amount DECIMAL(6,2),
h_data VARCHAR(24)
) dbpartition BY HASH(`h_w_id`);
CREATE TABLE new_orders (
no_w_id INTEGER NOT NULL,
no_d_id INTEGER NOT NULL,
no_o_id INTEGER NOT NULL,
PRIMARY KEY (no_w_id, no_d_id, no_o_id)
) dbpartition BY HASH(`no_w_id`);
CREATE TABLE `orders` (
o_w_id INTEGER NOT NULL,
o_d_id INTEGER NOT NULL,
o_id INTEGER NOT NULL,
o_c_id INTEGER,
o_carrier_id INTEGER,
o_ol_cnt INTEGER,
o_all_local INTEGER,
o_entry_d TIMESTAMP,
PRIMARY KEY (o_w_id, o_d_id, o_id)
) dbpartition BY HASH(`o_w_id`);
CREATE TABLE order_line (
ol_w_id INTEGER NOT NULL,
ol_d_id INTEGER NOT NULL,
ol_o_id INTEGER NOT NULL,
ol_number INTEGER NOT NULL,
ol_i_id INTEGER NOT NULL,
ol_delivery_d TIMESTAMP,
ol_amount DECIMAL(6,2),
ol_supply_w_id INTEGER,
ol_quantity INTEGER,
ol_dist_info CHAR(24),
PRIMARY KEY (ol_w_id, ol_d_id, ol_o_id, ol_number)
) dbpartition BY HASH(`ol_w_id`);
CREATE TABLE item (
i_id INTEGER NOT NULL,
i_name VARCHAR(24),
i_price DECIMAL(5,2),
i_data VARCHAR(50),
i_im_id INTEGER,
PRIMARY KEY (i_id)
) dbpartition BY HASH(`i_id`);
CREATE TABLE stock (
s_w_id INTEGER NOT NULL,
s_i_id INTEGER NOT NULL,
s_quantity INTEGER,
s_ytd INTEGER,
s_order_cnt INTEGER,
s_remote_cnt INTEGER,
s_data VARCHAR(50),
s_dist_01 CHAR(24),
s_dist_02 CHAR(24),
s_dist_03 CHAR(24),
s_dist_04 CHAR(24),
s_dist_05 CHAR(24),
s_dist_06 CHAR(24),
s_dist_07 CHAR(24),
s_dist_08 CHAR(24),
s_dist_09 CHAR(24),
s_dist_10 CHAR(24),
PRIMARY KEY (s_w_id, s_i_id)
) dbpartition BY HASH(`s_w_id`);
参考
https://www.cnblogs.com/lfri/p/10735739.html
https://help.aliyun.com/document_detail/405018.html