Spec-Zone.ru › MySQL 9.2

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_name является db_name.tbl_name. Эти два оператора эквивалентны:

SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;

Необязательное ключевое слово EXTENDED приводит к тому, что вывод будет включать информацию о скрытых индексах, которые MySQL использует внутри и которые недоступны пользователям.

Оператор WHERE может быть использован для выбора строк по более общим условиям, как описано в Разделе 28.8, “Расширения оператора SHOW”.

SHOW INDEX возвращает следующие поля:

  • Table

    Имя таблицы.

  • Non_unique

    0, если индекс не может содержать дубликаты, 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, “Невидимые индексы”.

  • Expression

    MySQL поддерживает функциональные части ключей (см. Функциональные части ключей); это влияет на столбцы 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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/show-index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API