mysqlslapで簡易ベンチマーク
MySQL 5.1.4から標準でmysqlslapというベンチマークツールが追加されました。*1
例えば、20クライアントから計10万回のINSERT文を実行するベンチマークは、以下のように実行します。
$ mysqlslap --no-defaults -u root -p --concurrency=20 --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --engine=innodb --auto-generate-sql-load-type=write --number-of-queries=100000
上記のコマンドでは、intカラムが2、varcharカラムが3なテーブルでベンチマークが実行されます。
結果は、以下のような感じで表示されます。
Benchmark Running for engine innodb Average number of seconds to run all queries: 33.248 seconds Minimum number of seconds to run all queries: 33.248 seconds Maximum number of seconds to run all queries: 33.248 seconds Number of clients running queries: 20 Average number of queries per client: 5000
実行するテストの種類は、"--auto-generate-sql-load-type"で指定します。
指定できるテストの種類は、以下の通りです。
-
- read : テーブルのスキャン
- write : テーブルへの挿入
- key : 主キーの読み取り
- update : 主キーの更新
- mixed : 挿入とスキャンを半々ずつ
MySQL単体の簡易ベンチマークが、標準コマンドでできるので、設定変更前後でサクっとやってみると良いかもしれません。