15.7.7.23 Заявление SHOW INDEX
SHOW [EXTENDED] {INDEX | INDEXES | KEYS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[WHERE expr]
SHOW INDEX возвращает информацию об индексах таблицы. Формат напоминает вызов SQLStatistics в ODBC. Для этого оператора требуются некоторые привилегии для любого столбца в таблице.
mysql> SHOW INDEX FROM City\G
*************************** 1. row ***************************
Table: city
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: ID
Collation: A
Cardinality: 4188
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
*************************** 2. row ***************************
Table: city
Non_unique: 1
Key_name: CountryCode
Seq_in_index: 1
Column_name: CountryCode
Collation: A
Cardinality: 232
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
Альтернативой синтаксису является tbl_name
FROM db_namedb_name.tbl_name. Эти два оператора эквивалентны:
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
Необязательное ключевое слово EXTENDED вызывает вывод информации о скрытых индексах, которые MySQL использует внутри и которые не доступны пользователям.
Оператор WHERE может быть использован для выбора строк с более общими условиями, как обсуждается в Разделе 28.8, «Расширения операторов SHOW».
SHOW INDEX возвращает следующие поля:
-
TableИмя таблицы.
-
Non_unique0, если индекс не может содержать дубликаты, 1, если может.
-
Key_nameИмя индекса. Если индекс является первичным ключом, имя всегда
PRIMARY. -
Seq_in_indexНомер последовательности столбца в индексе, начиная с 1.
-
Column_nameИмя столбца. Смотрите также описание для столбца
Expression. -
CollationСпособ сортировки столбца в индексе. Может иметь значения
A(возрастание),D(убывание) илиNULL(не отсортировано). -
CardinalityПриблизительное количество уникальных значений в индексе. Для обновления этого числа выполните
ANALYZE TABLEили (дляMyISAMтаблиц) myisamchk -a.Cardinalityподсчитывается на основе статистических данных, хранящихся как целые числа, поэтому значение не обязательно точное, даже для небольших таблиц. Чем выше мощность, тем больше вероятность, что MySQL будет использовать индекс при выполнении объединений. -
Sub_partПрефикс индекса. То есть, количество индексируемых символов, если столбец индексируется частично,
NULL, если индексируется весь столбец.ПримечаниеПрефиксные пределы измеряются в байтах. Однако префиксные длины для спецификаций индексов в операторах
CREATE TABLE,ALTER TABLEиCREATE INDEXинтерпретируются как количество символов для типов строковых данных без указания типа (CHAR,VARCHAR,TEXT) и количество байтов для бинарных строковых типов (BINARY,VARBINARY,BLOB). Учтите это при указании длины префикса для столбца строки без указания типа, использующего многобайтовую кодировку символов.Дополнительную информацию об индексных префиксах см. в Разделе 10.3.5, «Индексы столбцов» и Разделе 15.1.15, «Оператор CREATE INDEX».
-
PackedУказывает, как ключ упакован.
NULL, если нет. -
NullСодержит
YES, если столбец может содержатьNULLзначения и'', если нет. -
Index_typeИспользуемый метод индекса (
BTREE,FULLTEXT,HASH,RTREE). -
CommentИнформация об индексе, не описанная в отдельном столбце, например,
disabled, если индекс отключен. -
Index_commentЛюбые комментарии, предоставленные для индекса с атрибутом
COMMENTпри его создании. -
VisibleВидим ли индекс оптимизатору. См. Раздел 10.3.12, «Невидимые индексы».
-
ExpressionMySQL поддерживает функциональные части ключа (см. Функциональные части ключей); это влияет на столбцы
Column_nameиExpression:Для нефункциональной части ключа,
Column_nameуказывает на индексируемый столбец, аExpressionравноNULL.Для функциональной части ключа, столбец
Column_nameравенNULL, аExpressionуказывает на выражение для части ключа.
Информация об индексах таблиц также доступна из таблицы INFORMATION_SCHEMA STATISTICS. См. Раздел 28.3.34, «Таблица INFORMATION_SCHEMA STATISTICS». Расширенная информация о скрытых индексах доступна только с помощью SHOW EXTENDED INDEX; ее нельзя получить из таблицы STATISTICS.
Вы можете вывести индексы таблицы с помощью команды mysqlshow -k db_name tbl_name.
SHOW INDEX по умолчанию включает сгенерированный невидимый ключ таблицы, если он есть. Вы можете подавить эту информацию в выводе оператора, установив show_gipk_in_create_table_and_information_schema
= OFF. Дополнительную информацию см. в Разделе 15.1.20.11, «Сгенерированные невидимые первичные ключи».
© 2025 Oracle
Licensed under the GPLv2 License.