BenchDB
BenchDB is a command line tool to test the performance of TiDB.
Quick Start
Make sure you have started PD and TiKV, then run:
./benchdb -run="create|truncate|insert:0_10000|update-random:0_10000:100000|select:0_10000:10"
Arguments
run
The run
argument defines the workflow of the test. You can define
multiple jobs, separated by |
. The jobs are executed sequentially.
The run
argument has the following options:
-
create
creates a table. Currently it's just a typical simple table, with a few columns.
-
truncate
truncates the table.
-
insert:xxx_yyy
inserts rows with ID in [xxx, yyy)
.
e.g. insert:0_10000
inserts 10000 rows with ID in range [0, 9999)
.
-
update-random:xxx_yyy:zzz
updates a row with a random ID in range [xxx, yyy)
, for zzz
times.
e.g. update-random:100_200:50
updates 50 random rows with ID in range [100, 200)
.
-
update-range:xxx_yyy:zzz
update a range of rows with ID in range [xxx, yyy)
, for zzz
times.
-
select:xxx_yyy:zzz
select rows with ID range in [xxx, yyy)
, for zzz
times.
-
gc
does a manually triggered GC, so we can compare the performance before and after GC.
-
query:xxx:zzz
run a sql query xxx
, for zzz
times.
The output shows the execution time.
table
The name of the table, so we can create many tables for different tests without the need to clean up.
Default is bench_db
.
blob
The blob column size in bytes, so we can test performance for different row size.
Default is 1000
.
batch
The batch number of statements in a transaction, used for insert and update-random only, to speed up the test workflow.
Default is 100
.
addr
The PD address. Default is 127.0.0.1:2379
.
L
The log level. Default is warn
.