このページは機械翻訳したものです。
INNODB_TABLESTATS テーブルには、InnoDB テーブルに関する低レベルのステータス情報のビューが表示されます。 このデータは、InnoDB テーブルのクエリー時に使用するインデックスを計算するために MySQL オプティマイザによって使用されます。 この情報は、ディスクに格納されているデータではなく、インメモリーデータ構造から導出されます。 対応する内部 InnoDB システムテーブルはありません。
InnoDB テーブルは、前回のサーバー再起動以降にオープンされ、テーブルキャッシュからエージアウトされていない場合に、このビューに表示されます。 永続的統計を利用できるテーブルは、このビューに常に表示されます。
テーブル統計は、インデックス付けされたカラムを変更する DELETE または UPDATE 操作に対してのみ更新されます。 インデックス付けされていないカラムのみを変更する操作では、統計は更新されません。
ANALYZE TABLE によってテーブル統計がクリアされ、STATS_INITIALIZED カラムが Uninitialized に設定されます。 統計は、次回テーブルにアクセスしたときに再度収集されます。
関連する使用法と使用例については、セクション15.15.3「InnoDB INFORMATION_SCHEMA スキーマオブジェクトテーブル」を参照してください。
INNODB_TABLESTATS テーブルには、次のカラムがあります:
-
TABLE_ID統計が使用可能なテーブルを表す識別子 (
INNODB_TABLES.TABLE_IDと同じ値)。 -
NAMEテーブルの名前。
INNODB_TABLES.NAMEと同じ値です。 -
STATS_INITIALIZED値は、統計がすでに収集されている場合は
Initializedで、収集されていない場合はUninitializedです。 -
NUM_ROWS現在の推定されるテーブル内の行数。 それぞれの DML 操作後に更新されます。 コミットされていないトランザクションがテーブルに対して挿入または削除されている場合、値が正しくない可能性があります。
-
CLUST_INDEX_SIZEInnoDBテーブルデータを主キー順に保持する、クラスタ化されたインデックスを格納するディスク上のページ数。 この値は、テーブルの統計がまだ収集されていない場合は NULL になることがあります。 -
OTHER_INDEX_SIZEテーブルのすべてのセカンダリインデックスを格納するディスク上のページ数。 この値は、テーブルの統計がまだ収集されていない場合は NULL になることがあります。
-
MODIFIED_COUNTERINSERT、UPDATE、DELETEなどの DML 操作と外部キーのカスケード操作によって変更された行の数。 このカラムは、テーブル統計が再計算されるごとにリセットされます。 -
AUTOINCすべての自動インクリメントベースの操作で発行される次の番号。
AUTOINC値の変更ペースは、自動インクリメント番号が要求された回数と、要求ごとに認められる番号の数に応じて異なります。 -
REF_COUNTこのカウンタがゼロになると、テーブルメタデータをテーブルキャッシュから削除できます。
例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESTATS where TABLE_ID = 71\G
*************************** 1. row ***************************
TABLE_ID: 71
NAME: test/t1
STATS_INITIALIZED: Initialized
NUM_ROWS: 1
CLUST_INDEX_SIZE: 1
OTHER_INDEX_SIZE: 0
MODIFIED_COUNTER: 1
AUTOINC: 0
REF_COUNT: 1
メモ
このテーブルは、主にエキスパートレベルのパフォーマンス監視、または MySQL のパフォーマンス関連の拡張機能を開発する場合に役立ちます。
このテーブルをクエリーするには
PROCESS権限が必要です。INFORMATION_SCHEMACOLUMNSテーブルまたはSHOW COLUMNSステートメントを使用して、データ型やデフォルト値など、このテーブルのカラムに関する追加情報を表示します。