MariaDB はじめてのMariaDB 【第11回 負荷テストツール(mysqlslap)】
今回の概要
MySQLにはmysqlslap
という負荷テストツールがあります。
これは、MySQL5.1.4から標準搭載されている機能であり、MariaDBにも備わっている機能です。
今回はmysqlslapの使い方について、記載します。
また、MySQLとの性能比較についても検証してみます。
mysqlslapの使い方
特に難しいことはなく、mysqlslap
というコマンドを実行するだけでOKです。
オプションが多くあるのですが、下記オプションを使用することで
事足りるのではないかと思います。
--no-defaults --concurrency=20 --iterations=2 --number-int-cols=5 --number-char-cols=5 --engine=innodb --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --auto-generate-sql-write-number=1000 --number-of-queries=100000 --host=localhost --port=3306 --user=super -p
オプション | 内容 | 備考 |
---|---|---|
–no-defaults | 設定ファイル(my.cnf)のデフォルト値を適用しない。 このオプションは必ず先頭に記載する必要がある。 |
|
–concurrency | 同時接続するクライアント数。 | 例) –concurrency=20 |
–iterations | テストの実行回数。 | 例) –iterations=2 |
–number-int-cols | 使用するINT型のカラム数。 –auto-generate-sqlが指定されている必要がある。 |
例) –number-int-cols=5 |
–number-char-cols | 使用するvarchar型のカラム数。 –auto-generate-sqlが指定されている必要がある。 |
例) –number-char-cols=5 |
–engine | テーブルを作成する際のストレージエンジン。 | 例) –engine=innodb |
–auto-generate-sql | SQLを自動生成して、実行する。 | |
–auto-generate-sql-add-autoincrement | 自動生成するテーブルにauto_incrementを追加。 | |
–auto-generate-sql-load-type | SQLクエリのタイプを指定。 | デフォルトはmixedとなる。 クエリタイプ:mixed,update,write,key,read 例) –auto-generate-sql-load-type=mixed |
–auto-generate-sql-write-number | スレッド毎のINSERT文の実行数。 | デフォルトは100。 例) –auto-generate-sql-write-number=1000 |
–number-of-queries | 各クライアントが実行するSQLクエリの上限値。 | 例) –number-of-queries=100000 |
–host | 対象サーバのホスト名。 | 例) –host=localhost |
–port | 対象サーバのポート番号。 | 例) –port=3306 |
–user | 実行ユーザ。 | 実行ユーザにDB作成権限がないとエラーとなる。 例) –user=super |
–password または -p | パスワード。 | 直接パスワードを記載することもできる。 例) –password=xxx |
–csv | 実行結果をcsvファイルに出力する。 | 例) –csv=/tmp/bench_result.csv |
MariaDB(10.0.12)とMySQL(5.6.20)での実行比較
MariaDBとMySQLで実際に実行し、比較してみました。
【実行内容】
- 同時接続クライアント:20クライアント
- 1コマンドでの実行回数:2回
- INT型カラム:5個
- VARCHAR型カラム:5個
MariaDB
【実行文】
【結果(ファイル)】
【おまけ(ファイルに出力しない場合の結果)】
MySQL
【実行文】
【結果(ファイル)】
【おまけ(ファイルに出力しない場合の結果)】
実行結果の比較
MySQLに比べて、MariaDBの方が約10%程度早いという結果になりました。
実行環境とかによっても変わるかもしれませんが・・・
参考にして頂ければと思います。
WEBアプリケーション関連 人気連載リンク
データベースの基礎が学べるSQL基礎講座
SQL基礎 連載
より実践的なWEBアプリ開発講座!Bootstrap活用を学ぶなら・・
魁!小野の塾 連載