2013/11/06

mysqlslap — クライアント負荷エミュレーション

mysqlslap -uroot --create-schema=mysqlslap -a --no-drop --
auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=write --number
-int-cols=2 --number-char-cols=2 --auto-generate-sql-secondary-indexes=3 --auto-
generate-sql-execute-number=1000 --auto-generate-sql-write-number=1000 -c 100 -e
 InnoDB

 -a テーブル、INSERT文などSQLを自動生成します
 --no-drop       プログラムの終了時、作成したスキーマを削除しません
 -–auto-generate-sql-add-autoincrement auto_incrementのカラムを追加
 -–auto-generate-sql-load-type  負荷の種類。read,mixedなども指定できますが今回はデータを作りたいのでwriteを指定
 –number-int-cols –number-char-cols   ○型の列をいくつ作成する
 –auto-generate-sql-secondary-indexes セカンダリインデックスをいくつ作成するか
 -auto-generate-sql-write-number 1つのスレッドが実行するINSERTの件数(デフォルトは100)。
 –auto-generate-sql-execute-number 1回の実行で何回クエリを実行するか
 -c  並列数。( --concurrency=1,5,10,20,30,50,100,200,300,500)


 実際には-auto-generate-sql-execute-number x -cオプションで指定した数相当のレコードが作成されます。

Benchmark
        Running for engine InnoDB
        Average number of seconds to run all queries: 381.368 seconds
        Minimum number of seconds to run all queries: 381.368 seconds
        Maximum number of seconds to run all queries: 381.368 seconds
        Number of clients running queries: 100
        Average number of queries per client: 1000