MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

4.5.8 mysqlslap — ロードエミュレーションクライアント

mysqlslap は MySQL サーバーのクライアント負荷をエミュレートし、各段階のタイミングをレポートする診断プログラムです。 複数のクライアントがサーバーにアクセスしているかのように作動します。

mysqlslap は次のように起動します。

shell> mysqlslap [options]

--create または --query などのオプションを使用すると、SQL ステートメントを含む文字列やステートメントを含むファイルを指定できます。 ファイルを指定した場合、デフォルトでは各行に 1 つのステートメントを含んでいなければなりません。 (つまり、暗黙的なステートメント区切り文字は改行文字です。) 異なる区切り文字を指定するには、--delimiter オプションを使用します。これにより、複数行にわたるステートメントを指定したり、1 行に複数のステートメントを配置したりできます。 ファイルにコメントを含めることはできません。mysqlslap はそれらを理解しません。

mysqlslap は次の 3 段階で実行されます。

  1. テストに使用するスキーマ、テーブル、およびオプションでストアドプログラムまたはデータを作成します。 この段階では、1 つのクライアント接続を使用します。

  2. 負荷テストを実行します。 この段階では、多数のクライアント接続を使用できます。

  3. クリーンアップ (接続の解除、指定した場合はテーブルの削除) を実行します。 この段階では、1 つのクライアント接続を使用します。

例:

50 台のクライアントがクエリーを実行し、それぞれ 200 の選択を行うような、create および query SQL ステートメントを提供します (コマンドは単一行に入力します)。

mysqlslap --delimiter=";"
  --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"
  --query="SELECT * FROM a" --concurrency=50 --iterations=200

mysqlslap に、2 つの INT カラムと 3 つの VARCHAR カラムから成るテーブルを含む query SQL ステートメントを構築させます。 5 台のクライアントを使ってそれぞれ 20 回ずつクエリーを実行します。 テーブルを作成したり、データを挿入したりしないでください (直前のテストのスキーマとデータを使用します)。

mysqlslap --concurrency=5 --iterations=20
  --number-int-cols=2 --number-char-cols=3
  --auto-generate-sql

プログラムに、指定のファイルから create、insert、および query SQL ステートメントをロードするように指示します。この場合の create.sql ファイルには ';' で区切られた複数のテーブル作成ステートメントと ';' で区切られた複数の挿入ステートメントが含まれています。 --query ファイルには、';'で区切られた複数のクエリーを含める必要があります。 5 台のクライアントを使用して、すべての load ステートメントを実行してから、query ファイル内のすべてのクエリーを実行します (それぞれ 5 回ずつ)。

mysqlslap --concurrency=5
  --iterations=5 --query=query.sql --create=create.sql
  --delimiter=";"

mysqlslap は次のオプションをサポートします。これらはコマンド行またはオプションファイルの [mysqlslap] グループおよび [client] グループで指定できます。 MySQL プログラムによって使用されるオプションファイルの詳細については、セクション4.2.2.2「オプションファイルの使用」を参照してください。

表 4.18 「mysqlslap のオプション」

オプション名 説明 導入 非推奨
--auto-generate-sql SQL ステートメントがファイルおよびコマンドオプションを使用して指定されない場合、自動的に生成
--auto-generate-sql-add-autoincrement AUTO_INCREMENT カラムを自動生成されたテーブルに追加
--auto-generate-sql-execute-number 自動的に生成するクエリーの数を指定
--auto-generate-sql-guid-primary 自動生成されたテーブルに GUID ベースの主キーを追加
--auto-generate-sql-load-type テストの負荷タイプを指定します
--auto-generate-sql-secondary-indexes 自動生成されたテーブルに追加するセカンダリインデックスの数を指定
--auto-generate-sql-unique-query-number 自動テスト用に生成する異なるクエリーの数
--auto-generate-sql-unique-write-number --auto-generate-sql-write-number 用に生成する異なるクエリーの数
--auto-generate-sql-write-number 各スレッドで実行する行挿入の回数
--commit コミットの前に実行するステートメントの数
--compress クライアントとサーバー間で送信される情報をすべて圧縮 8.0.18
--compression-algorithms サーバーへの接続に許可される圧縮アルゴリズム 8.0.18
--concurrency SELECT ステートメントを発行する際、シミュレートするクライアントの数
--create テーブルの作成に使用するステートメントを含むファイルまたは文字列
--create-schema テストを実行するスキーマ
--csv カンマ区切りの値の形式で出力を生成
--debug デバッグログの書込み
--debug-check プログラムの終了時にデバッグ情報を出力
--debug-info プログラムの終了時に、デバッグ情報、メモリー、および CPU の統計を出力
--default-auth 使用する認証プラグイン
--defaults-extra-file 通常のオプションファイルに加えて、名前付きオプションファイルを読み取ります
--defaults-file 指名されたオプションファイルのみを読み取る
--defaults-group-suffix オプショングループのサフィクス値
--delimiter SQL ステートメントで使用する区切り文字
--detach N 個のステートメントが終わるごとに各接続を切り離す (閉じてからふたたび開く)
--enable-cleartext-plugin 平文の認証プラグインを有効化
--engine テーブルの作成に使用するストレージエンジン
--get-server-public-key サーバーから RSA 公開キーをリクエスト
--help ヘルプメッセージを表示して終了
--host MySQL サーバーがあるホスト
--iterations 実行するテストの回数
--login-path ログインパスオプションを .mylogin.cnf から読み取り
--no-defaults オプションファイルを読み取らない
--no-drop テスト実行中に作成されたスキーマを削除しない
--number-char-cols --auto-generate-sql が指定された場合に使用する VARCHAR カラムの数
--number-int-cols --auto-generate-sql が指定された場合に使用する INT カラムの数
--number-of-queries 各クライアントのクエリー数をおよそこの数に制限
--only-print データベースに接続しない。mysqlslap が実行したであろう内容を出力するのみ
--password サーバーに接続する際に使用するパスワード
--pipe 名前付きパイプを使用してサーバに接続する (Windows のみ)
--plugin-dir プラグインがインストールされているディレクトリ
--port 接続用の TCP/IP ポート番号
--post-query テスト完了後に実行するステートメントを含むファイルまたは文字列
--post-system テスト完了後に system() を使用して実行する文字列
--pre-query テストの実施前に実行するステートメントを含むファイルまたは文字列
--pre-system テストの実施前に system() を使用して実行する文字列
--print-defaults デフォルトオプションの印刷
--protocol 使用するトランスポートプロトコル
--query データ取得のために使用する SELECT ステートメントを含むファイルまたは文字列
--server-public-key-path RSA 公開鍵を含むファイルへのパス名
--shared-memory-base-name 共有メモリー接続用の共有メモリー名 (Windows のみ)
--silent サイレントモード
--socket 使用する Unix ソケットファイルまたは Windows 名前付きパイプ
--sql-mode クライアントセッションの SQL モードを設定
--ssl-ca 信頼できる SSL 認証局のリストを含むファイル
--ssl-capath 信頼できる SSL 認証局の証明書ファイルを含むディレクトリ
--ssl-cert X.509 証明書を含むファイル
--ssl-cipher 接続の暗号化に許可される暗号
--ssl-crl 証明書失効リストを含むファイル
--ssl-crlpath 証明書失効リストファイルを含むディレクトリ
--ssl-fips-mode クライアント側で FIPS モードを有効にするかどうか
--ssl-key X.509 キーを含むファイル
--ssl-mode サーバーへの接続に必要なセキュリティ状態
--tls-ciphersuites 暗号化された接続に許可される TLSv1.3 暗号スイート 8.0.16
--tls-version 暗号化された接続に許可される TLS プロトコル
--user サーバーへの接続時に使用する MySQL ユーザー名
--verbose 冗長モード
--version バージョン情報を表示して終了
--zstd-compression-level zstd 圧縮を使用するサーバーへの接続の圧縮レベル 8.0.18