15.7.7.24 Вывод информации об индексе
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.36, “Таблица 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.21.11, “Сгенерированные невидимые первичные ключи”.
© 2025 Oracle
Licensed under the GPLv2 License.