Skip to content

Latest commit

 

History

History
 
 

benchdb

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

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.