SHOW {INDEX | INDEXES | KEYS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[WHERE expr]
SHOW INDEX
は、テーブルインデックス情報を返します。この形式は、ODBC での SQLStatistics
呼び出しの形式に似ています。このステートメントには、このテーブル内のいずれかのカラムに対する何らかの権限が必要です。
SHOW INDEX
は、次のフィールドを返します。
-
Table
テーブルの名前。
-
Non_unique
このインデックスが重複を含むことができない場合は 0、できる場合は 1。
-
Key_name
インデックスの名前。このインデックスが主キーである場合、その名前は常に
PRIMARY
です。 -
Seq_in_index
インデックス内のカラムシーケンス番号であり、1 から始まります。
-
Column_name
カラム名。
-
インデックス内でのカラムのソート方法。MySQL では、これは「
A
」(昇順) またはNULL
(ソートされない) のどちらかの値です。 -
このインデックス内の一意の値の数の推定値。これは、
ANALYZE TABLE
または myisamchk -a を実行することによって更新されます。Cardinality
は整数として格納された統計に基づいてカウントされるため、この値は、小さなテーブルの場合でも必ずしも正確であるとはかぎりません。カーディナリティーが高いほど、MySQL が結合を実行するときにこのインデックスを使用する可能性は高くなります。 -
Sub_part
カラムが部分的にしかインデックス設定されていない場合は、インデックス設定された文字の数。カラム全体がインデックス設定されている場合は
NULL
。 -
Packed
キーがパックされる方法を示します。パックされない場合は
NULL
。 -
Null
このカラムに
NULL
値を含めることができる場合はYES
が、できない場合は''
が含まれます。 -
Index_type
使用されるインデックス方法 (
BTREE
、FULLTEXT
、HASH
、RTREE
)。 -
Comment
各カラムで説明されていないこのインデックスに関する情報 (このインデックスが無効になっている場合の
disabled
など)。 -
Index_comment
このインデックスが作成されたときに
COMMENT
属性でインデックスに対して提供された任意のコメント。
構文の代わりに tbl_name
FROM db_name
db_name
.tbl_name
を使用できます。次の 2 つのステートメントは同等です。
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
セクション21.32「SHOW ステートメントの拡張」で説明されているように、WHERE
句を指定すると、より一般的な条件を使用して行を選択できます。
また、mysqlshow -k db_name
tbl_name
コマンドを使用してテーブルのインデックスを一覧表示することもできます。