INNODB_INDEXES
テーブルは、InnoDB
インデックスに関するメタデータを提供します。
関連する使用法と使用例については、セクション15.15.3「InnoDB INFORMATION_SCHEMA スキーマオブジェクトテーブル」を参照してください。
INNODB_INDEXES
テーブルには、次のカラムがあります:
-
INDEX_ID
インデックスの識別子。 インデックス識別子は、インスタンス内のすべてのデータベースで一意です。
-
NAME
インデックスの名前。
InnoDB
によって暗黙的に作成されたほとんどのインデックスには一貫した名前が付けられていますが、インデックス名は必ずしも一意ではありません。 例: 主キーインデックスの場合はPRIMARY
、主キーを表すインデックスが指定されていない場合はGEN_CLUST_INDEX
、外部キー制約の場合はID_IND
、FOR_IND
およびREF_IND
。 -
TABLE_ID
インデックスに関連付けられたテーブルを表す識別子 (
INNODB_TABLES.TABLE_ID
と同じ値)。 -
TYPE
インデックスタイプを識別するビットレベルの情報から導出される数値。0 = 一意でないセカンダリインデックス、1 = 自動的に生成されるクラスタインデックス (
GEN_CLUST_INDEX
)、2 = 一意の非クラスタインデックス、3 = クラスタインデックス、32 = フルテキストインデックス、64 = 空間インデックス、128 = virtual generated column 上のセカンダリインデックス。 -
N_FIELDS
インデックスキーのカラムの数。
GEN_CLUST_INDEX
インデックスの場合、インデックスは実際のテーブルのカラムではなく人為的な値を使用して作成されるため、この値は 0 です。 -
PAGE_NO
インデックス B ツリーのルートページ番号。 全文インデックスの場合、全文インデックスは複数の B ツリー (補助テーブル) に配置されるため、
PAGE_NO
カラムは使用されず、-1 (FIL_NULL
) に設定されます。 -
SPACE
インデックスが存在するテーブルスペースの識別子。0 は
InnoDB
システムテーブルスペースを示します。 その他の数値は、file-per-table モードで別の.ibd
ファイルを使用して作成されたテーブルをテーブルします。 この識別子は、TRUNCATE TABLE
ステートメントのあとでも同じままです。 テーブルのすべてのインデックスが、テーブルと同じテーブルスペースに存在するので、この値は必ずしも一意にはなりません。 -
MERGE_THRESHOLD
インデックスページのマージしきい値。 行が削除されたとき、または更新操作によって行が短縮されたときに、インデックスページのデータ量が
MERGE_THRESHOLD
値を下回った場合、InnoDB
はインデックスページを隣接するインデックスページとマージしようとします。 デフォルトのしきい値は 50% です。 詳細は、セクション15.8.11「インデックスページのマージしきい値の構成」を参照してください。
例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_INDEXES WHERE TABLE_ID = 34\G
*************************** 1. row ***************************
INDEX_ID: 39
NAME: GEN_CLUST_INDEX
TABLE_ID: 34
TYPE: 1
N_FIELDS: 0
PAGE_NO: 3
SPACE: 23
MERGE_THRESHOLD: 50
*************************** 2. row ***************************
INDEX_ID: 40
NAME: i1
TABLE_ID: 34
TYPE: 0
N_FIELDS: 1
PAGE_NO: 4
SPACE: 23
MERGE_THRESHOLD: 50
メモ
このテーブルをクエリーするには
PROCESS
権限が必要です。INFORMATION_SCHEMA
COLUMNS
テーブルまたはSHOW COLUMNS
ステートメントを使用して、データ型やデフォルト値など、このテーブルのカラムに関する追加情報を表示します。