1、下载Git的测试工具
[root@localhost tpch]# git clone https://github.com/pingcap/tidb-bench.git
Cloning into 'tidb-bench'...
fatal: unable to access 'https://github.com/pingcap/tidb-bench.git/': Encountered end of file
###如上报错的解决
[root@localhost tpch]# git config --global --unset http.proxy
[root@localhost tpch]# git config --global --unset https.proxy
[root@localhost tpch]# git clone https://github.com/pingcap/tidb-bench.git
Cloning into 'tidb-bench'...
remote: Enumerating objects: 3313, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 3313 (delta 6), reused 16 (delta 6), pack-reused 3293
Receiving objects: 100% (3313/3313), 7.33 MiB | 2.65 MiB/s, done.
Resolving deltas: 100% (1321/1321), done.
[root@localhost tpch]#
2、tidb的库中创建8张表
进入下载到的tidb-bench中,再次进入到tpch
[root@localhost tpch]# mysql -h192.168.30.51 -uroot -P4000 <dss.sql
生成tiflash的副本
ALTER TABLE customer SET TIFLASH REPLICA 1;
ALTER TABLE lineitem SET TIFLASH REPLICA 1;
ALTER TABLE nation SET TIFLASH REPLICA 1;
ALTER TABLE orders SET TIFLASH REPLICA 1;
ALTER TABLE part SET TIFLASH REPLICA 1;
ALTER TABLE partsupp SET TIFLASH REPLICA 1;
ALTER TABLE region SET TIFLASH REPLICA 1;
ALTER TABLE supplier SET TIFLASH REPLICA 1;
3、生成测试数据
[root@localhost ~]# cd /tidb/tpch/tidb-bench/tpch #进入到tpch脚本的目录
[root@localhost tpch]# yum install gcc #安装gcc
[root@localhost tpch]# make tbl #构建生成tbl的数据,此时默认是生成1G数据
cd dbgen; make;
make[1]: Entering directory `/tidb/tpch/tidb-bench/tpch/dbgen'
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64 -c -o build.o build.c
........等等显示的结果
[root@localhost tpch]# cd dbgen/
[root@localhost dbgen]# ll *.tbl #此时默认生成的为1G的测试结果
-rw-r--r--. 1 root root 24346144 Dec 6 12:51 customer.tbl
-rw-r--r--. 1 root root 759863287 Dec 6 12:51 lineitem.tbl
-rw-r--r--. 1 root root 2224 Dec 6 12:51 nation.tbl
-rw-r--r--. 1 root root 171952161 Dec 6 12:51 orders.tbl
-rw-r--r--. 1 root root 118984616 Dec 6 12:51 partsupp.tbl
-rw-r--r--. 1 root root 24135125 Dec 6 12:51 part.tbl
-rw-r--r--. 1 root root 389 Dec 6 12:51 region.tbl
-rw-r--r--. 1 root root 1409184 Dec 6 12:51 supplier.tbl
删除1G的数据,重新生成10G的测试数据
[root@localhost dbgen]# rm -rf *.tbl
[root@localhost tpch]# cd dbgen && ./dbgen -s 10
TPC-H Population Generator (Version 2.17.0)
Copyright Transaction Processing Performance Council 1994 - 2010
此时生成完数据了,到dbgen目录下du -sh *.tbl查看生成的数据
4、导入数据
(1)首先进入到数据库内部,再次执行导入命令
[root@localhost ~]# mysql -h192.168.30.51 -uroot -p -P4000
MySQL [(none)]> use tpch;
#此时执行下面的语句
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/nation.tbl' INTO TABLE nation FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/region.tbl' INTO TABLE region FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/part.tbl' INTO TABLE part FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/supplier.tbl' INTO TABLE supplier FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/partsupp.tbl' INTO TABLE partsupp FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/customer.tbl' INTO TABLE customer FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/orders.tbl' INTO TABLE orders FIELDS TERMINATED BY '|';
load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/lineitem.tbl' INTO TABLE lineitem FIELDS TERMINATED BY '|';
说明。再导入中出现报错如下ERROR 8004 (HY000): Transaction is too large, size: 104857637
MySQL [tpch]> load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/part.tbl' INTO TABLE part FIELDS TERMINATED BY '|';
ERROR 8004 (HY000): Transaction is too large, size: 104857637
解决方法:首先建议调大 topo.yaml 文件中的 txn-total-size-limit 值。若还是不行,则将 tidb_dml_batch_size 的值设置为 20000 来恢复升级前的行为。
第一步:
#cd /tidb #创建tidb本地集群时创建的配置文件
第二步:
[root@localhost tidb]# vim topo.yaml
tikv_servers:下面增加 performance.txn-total-size-limit: 10737418240,请看此篇文章 https://www.zybuluo.com/llplmlyd/note/1737936 中的介绍使用
#######修改或的显示为
.........等等
tikv_servers:
- host: 192.168.30.51
port: 20160
status_port: 20180
config:
server.labels: { host: "logic-host-1" }
performance.txn-total-size-limit: 10737418240
- host: 192.168.30.51
port: 20161
status_port: 20181
config:
server.labels: { host: "logic-host-2" }
performance.txn-total-size-limit: 10737418240
- host: 192.168.30.51
port: 20162
status_port: 20182
config:
server.labels: { host: "logic-host-3" }
performance.txn-total-size-limit: 10737418240
tiflash_servers:
- host: 192.168.30.51
........等等
第三步:
$ tiup cluster reload tidb_v640 -R tidb #tidb_v640为cluster_name
第四步:
MySQL [tpch]> set @@tidb_dml_batch_size=20000;
Query OK, 0 rows affected (0.00 sec)
执行完如上,再次使用load data去导入大表的数据,则会显示导入成功
MySQL [tpch]> load data local INFILE '/tidb/tpch/tidb-bench/tpch/data/part.tbl' INTO TABLE part FIELDS TERMINATED BY '|';
Query OK, 2000000 rows affected (48.68 sec)
Records: 2000000 Deleted: 0 Skipped: 0 Warnings: 0
测试结果
注:创建表的SQL与查询的SQL请见下载后的工具包
[1]导入耗时
表名 | 行数 | 耗时 |
nation | 25 | 0.24 sec |
region | 5 | 0.02 sec |
part | 2000000 | 48.68 sec |
orders | 15000000 | 8 min 14.55 sec |
supplier | 100000 | 48.10 sec |
partsupp | 8000000 | 5 min 18.83 sec |
customer | 1500000 | 1 min 19.35 sec |
lineitem | 59986052 | 58 min 23.35 sec |
查询耗时
| 第一次 | 第二次 | 第三次 | 查询的结果 |
Q1 | 4.59 | 1.34 | 1.35 | 4 rows |
Q2 | 17.85 | 12.75 | 12.45 | 100 rows |
Q3 | 6.33 | 3.94 | 4.19 | 10 rows |
Q4 | 0.75 | 0.78 | 0.78 | 5 rows |
Q5 | ERROR 1105 (HY000): rpc error: code = Unavailable desc = keepalive ping failed to receive ACK within timeout | |||
Q6 | 12.26 | 0.36 | 0.34 | 1 rows |
Q7 | 41.10 | 2.91 | 2.97 | 4 rows |
Q8 | 54.85 | 17.86 | 17.77 | 2 rows |
Q9 | 194.67 | 164.99 | 152.09 | 175 rows |
Q10 | 22.33 | 21.29 | 21.25 | 20 rows |
Q11 | 1.21 | 0.77 | 0.76 | Empty set |
Q12 | 9.08 | 1.00 | 1.02 | 2 rows |
Q13 | 3.06 | 0.84 | 0.85 | 46 rows |
Q14 | 2.11 | 1.84 | 1.72 | 1 rows |
Q15 | 0.77 | 0.76 | 0.72 |
|
Q16 | 2.91 | 2.69 | 2.86 | 27838 rows |
Q17 | 88.07 | 88.21 | 87.56 | 1 rows |
Q18 | 3.99 | 2.93 | 2.90 | 84 rows |
Q19 | 3.74 | 2.57 | 2.64 | 1 |
Q20 | 11.70 | 11.71 | 12.01 | 1746 rows |
Q21 | 35.66 | 3.56 | 3.58 | 100 rows |
Q22 | 0.58 | 0.43 | 0.43 | 4 rows |
作者:Syw