MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで読み取り/書き込み比率を確認するコマンドとは?

MySQLで読み取りと書き込みの比率を確認するには、SHOW STATUSコマンドを使用します。このコマンドを実行することで、各SQLコマンドの実行回数を取得でき、そこから読み取り/書き込み比率を算出できます。

ケース1:すべてのコマンド統計を取得する

読み取り/書き込み比率を含むすべての統計情報を取得するには、以下の構文を使用します。

SHOW STATUS LIKE 'Com_%';

このクエリは「Com_」で始まるすべてのステータス変数を返します。各変数は対応するSQLコマンドが実行された累計回数を表しており、Com_select(読み取り)とCom_insertCom_updateCom_delete(書き込み)の値を比較することで、サーバーへの負荷の傾向を把握できます。

ケース2:挿入・更新・選択・削除の比率を取得する

INSERT、UPDATE、SELECT、DELETEの実行回数だけを絞り込んで確認したい場合は、以下の構文を使用します。

SHOW GLOBAL STATUS WHERE Variable_name = 'Com_insert'
OR Variable_name = 'Com_select' OR
Variable_name = 'Com_update' OR Variable_name = 'Com_delete';

実行例

上記の構文はそのまま実行できます。実際のクエリは以下の通りです。

mysql> SHOW GLOBAL STATUS WHERE Variable_name = 'Com_insert' OR Variable_name
= 'Com_select' OR
    -> Variable_name = 'Com_update' OR Variable_name = 'Com_delete';

出力結果

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_delete    | 5     |
| Com_insert    | 340   |
| Com_select    | 286   |
| Com_update    | 13    |
+---------------+-------+
4 rows in set (0.00 sec)

すべての統計情報を確認する場合

サーバー上で実行されたすべてのコマンドの統計を確認したい場合は、以下のクエリを実行します。

mysql> SHOW STATUS LIKE 'Com_%';

出力例(主要な項目のみ抜粋):

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| Com_change_db      | 1     |
| Com_create_table   | 6     |
| Com_delete         | 0     |
| Com_insert         | 42    |
| Com_select         | 27    |
| Com_set_option     | 3     |
| Com_show_status    | 3     |
| Com_show_variables | 2     |
| Com_update         | 0     |
| ...                | ...   |
+--------------------+-------+
168 rows in set (0.04 sec)

実際の出力には、ALTER、CREATE、DROP、GRANTなど、サーバーが起動して以降に実行されたすべてのSQLコマンドの累計実行回数が168行分表示されます。値が0の項目は、該当するコマンドがまだ実行されていないことを示します。

読み取り/書き込み比率の計算方法

取得した値をもとに、以下のように比率を計算できます。

  • 読み取り数Com_select の値
  • 書き込み数Com_insert + Com_update + Com_delete の合計

例えば、Com_select = 286、Com_insert = 340、Com_update = 13、Com_delete = 5 の場合、書き込み数は 340 + 13 + 5 = 358 となり、読み取り:書き込み比は約 286:358(約 0.8:1)です。この数値が高いほど書き込み負荷の高いシステムであることを意味します。

SHOW STATUSとSHOW GLOBAL STATUSの違い

SHOW STATUSは現在のセッション(自分の接続)の統計のみを返すのに対し、SHOW GLOBAL STATUSはサーバー全体(すべての接続)の累計統計を返します。本番環境でサーバー全体の読み取り/書き込み傾向を分析する場合は、GLOBALを付与したクエリを使用することをおすすめします。

  1. コマンドプロンプトでMySQLのパスを取得・設定する方法

    この記事では、コマンドプロンプトからMySQLを利用できるようにするためのパス(PATH)の確認方法と設定手順について解説します。MySQLの各プログラムを簡単に呼び出せるようにするには、MySQLのbinディレクトリへのパスをWindowsシステムのPATH環境変数に追加します。あらかじめMySQLが正しくインストールされていることを確認してから、以下の手順に進んでください。WindowsのPATHにMySQLを追加する手順ステップ1:mysql.exeファイルの場所を確認するまず、mysql.exeファイルが保存されている場所を特定します。一般的には以下の場所にあります。C:\Progra

  2. WindowsのPATH環境変数にMySQLを追加する方法

    環境変数は、コマンドプロンプトから設定することができます。現在のコマンドプロセッサの実行時にのみ反映される一時的な設定と、今後のセッションにも恒久的に反映される設定の2種類があります。恒久的に設定したい場合は、スタートアップファイルに記述するか、OSが提供する環境変数設定用のインターフェースを利用します。詳細については、お使いのコマンドインタープリターのドキュメントをご確認ください。環境変数に値を指定する際は、使用しているコマンドプロセッサに対応した構文を使う必要があります。コマンドプロンプトで環境変数を設定するコマンドを実行すると、変更は即座に反映されます。ただし、この方法での設定はユーザー