SHOW ENGINE engine_name {STATUS | MUTEX}
SHOW ENGINE
は、ストレージエンジンに関する動作情報を表示します。 これには PROCESS
権限が必要です。 このステートメントは、次のバリアントがあります。
SHOW ENGINE INNODB STATUS
SHOW ENGINE INNODB MUTEX
SHOW ENGINE PERFORMANCE_SCHEMA STATUS
SHOW ENGINE INNODB STATUS
は、InnoDB
ストレージエンジンの状態に関する InnoDB
標準モニターからの広範囲にわたる情報を表示します。 InnoDB
の処理に関する情報を提供する標準モニターやその他の InnoDB
モニターについては、セクション15.17「InnoDB モニター」を参照してください。
SHOW ENGINE INNODB MUTEX
は、InnoDB
相互排他ロックおよび読み書きロックの統計を表示します。
InnoDB
mutex および rwlocks は、Performance Schema テーブルを使用してモニターすることもできます。 セクション15.16.2「パフォーマンススキーマを使用した InnoDB Mutex 待機のモニタリング」を参照してください。
相互排他統計収集は、次のオプションを使用して動的に構成されます:
-
mutex 統計の収集を有効にするには、次のコマンドを実行します:
SET GLOBAL innodb_monitor_enable='latch';
-
mutex 統計をリセットするには、次のコマンドを実行します:
SET GLOBAL innodb_monitor_reset='latch';
-
mutex 統計の収集を無効にするには、次のコマンドを実行します:
SET GLOBAL innodb_monitor_disable='latch';
SHOW ENGINE INNODB MUTEX
の mutex 統計の収集は、innodb_monitor_enable='all'
を設定して有効にすることも、innodb_monitor_disable='all'
を設定して無効にすることもできます。
SHOW ENGINE INNODB MUTEX
出力には、次のカラムがあります:
-
Type
常に
InnoDB
です。 -
Name
mutex の場合、
Name
フィールドには mutex 名のみがレポートされます。 rwlocks の場合、Name
フィールドは rwlock が実装されているソースファイルと rwlock が作成されたファイル内の行番号を報告します。 この行番号は、使用している MySQL のバージョンに固有です。 -
Status
相互排他ロックのステータス。 このフィールドには、スピン、待機、およびコールの数が報告されます。
InnoDB
の外部で実装される低レベルのオペレーティングシステム相互排他ロックの統計はレポートされません。spins
はスピンの数を示します。waits
は相互排他ロック待機の数を示します。calls
は、mutex がリクエストされた回数を示します。
バッファプールが大きいシステムでは出力量が過度に多いため、SHOW ENGINE INNODB MUTEX
では各バッファプールブロックの mutex および rw ロックはリストされません。 ただし、SHOW ENGINE INNODB MUTEX
はバッファープールブロック相互排他ロックおよび rw-lock の集約 BUF_BLOCK_MUTEX
スピン、待機、および呼び出しの値を出力します。 SHOW ENGINE INNODB MUTEX
はまた、待機されなかった (os_waits=0
) 相互排他ロックまたは読み書きロックも一覧表示しません。 そのため、SHOW ENGINE INNODB MUTEX
は、OS レベルの待機を少なくとも 1 回は発生させた、バッファープールの外部の相互排他ロックと読み書きロックに関する情報のみを表示します。
SHOW ENGINE PERFORMANCE_SCHEMA STATUS
を使用して、パフォーマンススキーマコードの内部操作を検査します。
mysql> SHOW ENGINE PERFORMANCE_SCHEMA STATUS\G
...
*************************** 3. row ***************************
Type: performance_schema
Name: events_waits_history.size
Status: 76
*************************** 4. row ***************************
Type: performance_schema
Name: events_waits_history.count
Status: 10000
*************************** 5. row ***************************
Type: performance_schema
Name: events_waits_history.memory
Status: 760000
...
*************************** 57. row ***************************
Type: performance_schema
Name: performance_schema.memory
Status: 26459600
...
このステートメントは、さまざまなパフォーマンススキーマオプションがメモリー要件に与える効果について、DBA が理解できるようにすることを目的としています。
Name
値は、それぞれ、内部バッファーとバッファー属性を指定する 2 つの部分で構成されます。 バッファー名は、次のように解釈します。
テーブルとして公開されていない内部バッファーは括弧内に指定されます。 例:
(pfs_cond_class).size
、(pfs_mutex_class).memory
。performance_schema
データベース内のテーブルとして公開されている内部バッファーは、そのテーブル名で (括弧なしで) 指定されます。 例:events_waits_history.size
、mutex_instances.count
。全体としてのパフォーマンススキーマに適用される値は、
performance_schema
で始まります。 例:performance_schema.memory
。
バッファー属性には、次の意味があります。
size
は、テーブル内の行のサイズなど、実装で使用される内部レコードのサイズです。size
の値は変更できません。count
は、テーブルの行数などの内部レコードの数です。count
の値は、パフォーマンススキーマの構成オプションを使用して変更できます。テーブルの場合、
はtbl_name
.memorysize
およびcount
の製品です。 全体としてのパフォーマンススキーマの場合、performance_schema.memory
は、使用されているすべてのメモリーの合計 (ほかのすべてのmemory
値の合計) です。
場合によっては、パフォーマンススキーマの構成パラメータと SHOW ENGINE
値の間に直接の関係が存在します。 たとえば、events_waits_history_long.count
は performance_schema_events_waits_history_long_size
に対応します。 その他の場合、この関係はより複雑です。 たとえば、events_waits_history.count
は、performance_schema_events_waits_history_size
(スレッド当たりの行数) に performance_schema_max_thread_instances
(スレッド数) を掛けた値に対応します。
SHOW ENGINE NDB STATUS.
サーバーで NDB
ストレージエンジンが有効になっている場合、SHOW ENGINE NDB STATUS
は、接続されているデータノードの数、クラスタの接続文字列、クラスタバイナリログのエポックや、クラスタに接続したときに MySQL Server によって作成されたさまざまなクラスタ API オブジェクトの数などのクラスタステータス情報を表示します。 このステートメントからのサンプル出力を次に示します。
mysql> SHOW ENGINE NDB STATUS;
+------------+-----------------------+--------------------------------------------------+
| Type | Name | Status |
+------------+-----------------------+--------------------------------------------------+
| ndbcluster | connection | cluster_node_id=7,
connected_host=198.51.100.103, connected_port=1186, number_of_data_nodes=4,
number_of_ready_data_nodes=3, connect_count=0 |
| ndbcluster | NdbTransaction | created=6, free=0, sizeof=212 |
| ndbcluster | NdbOperation | created=8, free=8, sizeof=660 |
| ndbcluster | NdbIndexScanOperation | created=1, free=1, sizeof=744 |
| ndbcluster | NdbIndexOperation | created=0, free=0, sizeof=664 |
| ndbcluster | NdbRecAttr | created=1285, free=1285, sizeof=60 |
| ndbcluster | NdbApiSignal | created=16, free=16, sizeof=136 |
| ndbcluster | NdbLabel | created=0, free=0, sizeof=196 |
| ndbcluster | NdbBranch | created=0, free=0, sizeof=24 |
| ndbcluster | NdbSubroutine | created=0, free=0, sizeof=68 |
| ndbcluster | NdbCall | created=0, free=0, sizeof=16 |
| ndbcluster | NdbBlob | created=1, free=1, sizeof=264 |
| ndbcluster | NdbReceiver | created=4, free=0, sizeof=68 |
| ndbcluster | binlog | latest_epoch=155467, latest_trans_epoch=148126,
latest_received_binlog_epoch=0, latest_handled_binlog_epoch=0,
latest_applied_binlog_epoch=0 |
+------------+-----------------------+--------------------------------------------------+
これらの各行の Status
カラムには、クラスタへの MySQL サーバー接続とクラスタバイナリログステータスに関する情報がそれぞれ表示されます。 Status
情報は、カンマで区切られた一連の名前と値のペアの形式をしています。
connection
の行の Status
カラムには、次のテーブルで説明する名前と値のペアが含まれます。
名前 | 値 |
---|---|
cluster_node_id |
クラスタ内の MySQL サーバーのノード ID |
connected_host |
MySQL サーバーが接続されているクラスタ管理サーバーのホスト名または IP アドレス |
connected_port |
MySQL サーバーが管理サーバー (connected_host ) に接続するために使用するポート |
number_of_data_nodes |
クラスタのために構成されているデータノードの数 (つまり、そのクラスタの config.ini ファイル内の [ndbd] セクションの数) |
number_of_ready_data_nodes |
実際に実行されているクラスタ内のデータノードの数 |
connect_count |
この mysqld がクラスタデータノードに接続または再接続した回数 |
binlog
行の Status
カラムには、NDB Cluster レプリケーションに関する情報が含まれています。 そこに含まれている名前と値のペアについて、次の表で説明します。
名前 | 値 |
---|---|
latest_epoch |
この MySQL サーバー上で直近で実行された最新のエポック (つまり、このサーバー上で実行された最新のトランザクションのシーケンス番号) |
latest_trans_epoch |
クラスタのデータノードによって処理された最新のエポック |
latest_received_binlog_epoch |
バイナリログスレッドによって受信された最新のエポック |
latest_handled_binlog_epoch |
(バイナリログへの書き込みのために) バイナリログスレッドによって処理された最新のエポック |
latest_applied_binlog_epoch |
実際にバイナリログに書き込まれた最新のエポック |
詳細は、セクション23.6「NDB Cluster レプリケーション」を参照してください。
クラスタのモニタリングにもっとも役立つ可能性のある SHOW ENGINE NDB STATUS
の出力の残りの行を、次に Name
で一覧表示します。
NdbTransaction
: 作成されたNdbTransaction
オブジェクトの数とサイズ。NdbTransaction
は、NDB
テーブル上で (CREATE TABLE
やALTER TABLE
などの) テーブルスキーマ操作が実行されるたびに作成されます。NdbOperation
: 作成されたNdbOperation
オブジェクトの数とサイズ。NdbIndexScanOperation
: 作成されたNdbIndexScanOperation
オブジェクトの数とサイズ。NdbIndexOperation
: 作成されたNdbIndexOperation
オブジェクトの数とサイズ。NdbRecAttr
: 作成されたNdbRecAttr
オブジェクトの数とサイズ。 一般に、これらのいずれかは、SQL ノードによってデータ操作ステートメントが実行されるたびに作成されます。NdbBlob
: 作成されたNdbBlob
オブジェクトの数とサイズ。NdbBlob
は、NDB
テーブル内のBLOB
カラムに関連する新しい操作が実行されるたびに作成されます。NdbReceiver
: 作成されたすべてのNdbReceiver
オブジェクトの数とサイズ。created
カラム内の数は、MySQL サーバーが接続されているクラスタ内のデータノードの数と同じです。
現在のセッション中に、このステートメントが実行されている SQL ノードにアクセスしている MySQL クライアントによって NDB
テーブルに関連する操作が実行されていない場合、SHOW ENGINE NDB STATUS
は空の結果を返します。