Spec-Zone.ru › MySQL 8.4

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_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.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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/show-index.html

Spec-Zone.ru

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