Spec-Zone.ru › MySQL 5.7

13.7.5.22 Заявление SHOW INDEX

SHOW {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:
*************************** 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:

Альтернативой синтаксису tbl_name FROM db_name является db_name.tbl_name. Эти два заявления эквивалентны:

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

Клауза WHERE может быть использована для выбора строк с более общими условиями, как обсуждается в разделе 24.8, «Расширения для заявлений SHOW».

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

  • Table

    Имя таблицы.

  • Non_unique

    0, если индекс не может содержать дубликатов, 1 — если может.

  • Key_name

    Имя индекса. Если индекс является первичным ключом, имя всегда PRIMARY.

  • Seq_in_index

    Номер последовательности столбца в индексе, начиная с 1.

  • Column_name

    Имя столбца.

  • Collation

    Способ сортировки столбца в индексе. Может принимать значения A (возрастание) или NULL (не отсортировано).

  • Cardinality

    Оценка количества уникальных значений в индексе. Для обновления этого числа выполните ANALYZE TABLE или (для MyISAM таблиц) myisamchk -a.

    Cardinality подсчитывается на основе статистики, хранящейся в виде целых чисел, поэтому значение не обязательно точное, даже для небольших таблиц. Чем выше кардинальность, тем больше вероятность того, что MySQL будет использовать индекс при выполнении соединений.

  • Sub_part

    Префикс индекса. То есть количество индексируемых символов, если столбец частично индексирован, NULL если весь столбец индексирован.

    Примечание

    Префиксные ограничения измеряются в байтах. Однако префиксные длины для спецификаций индексов в заявлениях CREATE TABLE, ALTER TABLE и CREATE INDEX интерпретируются как количество символов для типов строк без учёта типа бинарных строк (CHAR, VARCHAR, TEXT) и количество байтов для бинарных типов строк (BINARY, VARBINARY, BLOB). Учтите это при указании длины префикса для столбца строки без учёта типа бинарных строк, использующего многобайтовый набор символов.

    Дополнительную информацию о префиксах индексов см. в разделе 8.3.4, «Столбцовые индексы», и разделе 13.1.14, «Заявление CREATE INDEX».

  • Packed

    Указывает, как упакован ключ. NULL если нет.

  • Null

    Содержит YES, если столбец может содержать NULL значения, и '', если нет.

  • Index_type

    Использованный метод индексирования (BTREE, FULLTEXT, HASH, RTREE).

  • Comment

    Информация об индексе, не описанная в своём столбце, например, disabled если индекс отключён.

  • Index_comment

    Любой комментарий, предоставленный для индекса с атрибутом COMMENT, когда индекс был создан.

Информация об индексах таблиц также доступна из INFORMATION_SCHEMA STATISTICS таблицы. Смотрите раздел 24.3.24, «Таблица INFORMATION_SCHEMA STATISTICS».

Вы можете перечислить индексы таблицы с помощью команды mysqlshow -k db_name tbl_name.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/show-index.html

Spec-Zone.ru

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