链接
    https://help.aliyun.com/document_detail/405018.html

    阿里云团队已经把里面的benchmarksql.tar.gz已经对mysql进行定制,比较方便

    Mycat2在只涉及单库分表或一个mysql,无论使用XA还是Proxy都能通过TPC-C测试,因为事务仍然是本地事务

    1. 导入数据使用下面命令
    2. //tpcc_load [server] [DB] [user] [pass] [warehouse]
    3. server:数据库 IP
    4. DB:数据库名称
    5. user:用户名
    6. pass:密码
    7. warehouse:仓库数量
    8. # ./tpcc_load 127.0.0.1 8066 tpcc root 123456 10

    运行测试

    1. # ./tpcc_start --help
    2. ***************************************
    3. *** ###easy### TPC-C Load Generator ***
    4. ***************************************
    5. ./tpcc_start: invalid option -- '-'
    6. 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
    1. # ~/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

    或者

    1. cd benchmarksql/run
    2. ./runBenchmark.sh props.mysql

    建表语句

    1. CREATE DATABASE if not exists tpcc;
    2. USE tpcc;
    3. CREATE TABLE config (
    4. cfg_name VARCHAR(30) PRIMARY KEY,
    5. cfg_value VARCHAR(50)
    6. );
    7. CREATE TABLE warehouse (
    8. w_id INTEGER NOT NULL,
    9. w_ytd DECIMAL(12,2),
    10. w_tax DECIMAL(4,4),
    11. w_name VARCHAR(10),
    12. w_street_1 VARCHAR(20),
    13. w_street_2 VARCHAR(20),
    14. w_city VARCHAR(20),
    15. w_state CHAR(2),
    16. w_zip CHAR(9),
    17. PRIMARY KEY (w_id)
    18. ) dbpartition BY HASH(`w_id`);
    19. CREATE TABLE district (
    20. d_w_id INTEGER NOT NULL,
    21. d_id INTEGER NOT NULL,
    22. d_ytd DECIMAL(12,2),
    23. d_tax DECIMAL(4,4),
    24. d_next_o_id INTEGER,
    25. d_name VARCHAR(10),
    26. d_street_1 VARCHAR(20),
    27. d_street_2 VARCHAR(20),
    28. d_city VARCHAR(20),
    29. d_state CHAR(2),
    30. d_zip CHAR(9),
    31. PRIMARY KEY (d_w_id, d_id)
    32. ) dbpartition BY HASH(`d_w_id`);
    33. CREATE TABLE customer (
    34. c_w_id INTEGER NOT NULL,
    35. c_d_id INTEGER NOT NULL,
    36. c_id INTEGER NOT NULL,
    37. c_discount DECIMAL(4,4),
    38. c_credit CHAR(2),
    39. c_last VARCHAR(16),
    40. c_first VARCHAR(16),
    41. c_credit_lim DECIMAL(12,2),
    42. c_balance DECIMAL(12,2),
    43. c_ytd_payment DECIMAL(12,2),
    44. c_payment_cnt INTEGER,
    45. c_delivery_cnt INTEGER,
    46. c_street_1 VARCHAR(20),
    47. c_street_2 VARCHAR(20),
    48. c_city VARCHAR(20),
    49. c_state CHAR(2),
    50. c_zip CHAR(9),
    51. c_phone CHAR(16),
    52. c_since TIMESTAMP,
    53. c_middle CHAR(2),
    54. c_data VARCHAR(500),
    55. PRIMARY KEY (c_w_id, c_d_id, c_id)
    56. ) dbpartition BY HASH(`c_w_id`);
    57. CREATE sequence hist_id_seq;
    58. CREATE TABLE history (
    59. hist_id INTEGER,
    60. h_c_id INTEGER,
    61. h_c_d_id INTEGER,
    62. h_c_w_id INTEGER,
    63. h_d_id INTEGER,
    64. h_w_id INTEGER,
    65. h_date TIMESTAMP,
    66. h_amount DECIMAL(6,2),
    67. h_data VARCHAR(24)
    68. ) dbpartition BY HASH(`h_w_id`);
    69. CREATE TABLE new_orders (
    70. no_w_id INTEGER NOT NULL,
    71. no_d_id INTEGER NOT NULL,
    72. no_o_id INTEGER NOT NULL,
    73. PRIMARY KEY (no_w_id, no_d_id, no_o_id)
    74. ) dbpartition BY HASH(`no_w_id`);
    75. CREATE TABLE `orders` (
    76. o_w_id INTEGER NOT NULL,
    77. o_d_id INTEGER NOT NULL,
    78. o_id INTEGER NOT NULL,
    79. o_c_id INTEGER,
    80. o_carrier_id INTEGER,
    81. o_ol_cnt INTEGER,
    82. o_all_local INTEGER,
    83. o_entry_d TIMESTAMP,
    84. PRIMARY KEY (o_w_id, o_d_id, o_id)
    85. ) dbpartition BY HASH(`o_w_id`);
    86. CREATE TABLE order_line (
    87. ol_w_id INTEGER NOT NULL,
    88. ol_d_id INTEGER NOT NULL,
    89. ol_o_id INTEGER NOT NULL,
    90. ol_number INTEGER NOT NULL,
    91. ol_i_id INTEGER NOT NULL,
    92. ol_delivery_d TIMESTAMP,
    93. ol_amount DECIMAL(6,2),
    94. ol_supply_w_id INTEGER,
    95. ol_quantity INTEGER,
    96. ol_dist_info CHAR(24),
    97. PRIMARY KEY (ol_w_id, ol_d_id, ol_o_id, ol_number)
    98. ) dbpartition BY HASH(`ol_w_id`);
    99. CREATE TABLE item (
    100. i_id INTEGER NOT NULL,
    101. i_name VARCHAR(24),
    102. i_price DECIMAL(5,2),
    103. i_data VARCHAR(50),
    104. i_im_id INTEGER,
    105. PRIMARY KEY (i_id)
    106. ) dbpartition BY HASH(`i_id`);
    107. CREATE TABLE stock (
    108. s_w_id INTEGER NOT NULL,
    109. s_i_id INTEGER NOT NULL,
    110. s_quantity INTEGER,
    111. s_ytd INTEGER,
    112. s_order_cnt INTEGER,
    113. s_remote_cnt INTEGER,
    114. s_data VARCHAR(50),
    115. s_dist_01 CHAR(24),
    116. s_dist_02 CHAR(24),
    117. s_dist_03 CHAR(24),
    118. s_dist_04 CHAR(24),
    119. s_dist_05 CHAR(24),
    120. s_dist_06 CHAR(24),
    121. s_dist_07 CHAR(24),
    122. s_dist_08 CHAR(24),
    123. s_dist_09 CHAR(24),
    124. s_dist_10 CHAR(24),
    125. PRIMARY KEY (s_w_id, s_i_id)
    126. ) dbpartition BY HASH(`s_w_id`);

    参考
    https://www.cnblogs.com/lfri/p/10735739.html
    https://help.aliyun.com/document_detail/405018.html