Spec-Zone.ru › MySQL 9.2

28.3.36 Таблица INFORMATION_SCHEMA STATISTICS

Таблица STATISTICS предоставляет информацию об индексах таблиц.

Столбцы в таблице STATISTICS, представляющие статистику таблицы, содержат кэшированные значения. Переменная сервера information_schema_stats_expiry определяет период времени, по истечении которого кэшированная статистика таблицы устаревает. По умолчанию это 86400 секунд (24 часа). Если кэшированной статистики нет или она устарела, при запросе столбцов статистики таблицы статистика извлекается из хранилища движков. Для обновления кэшированных значений для заданной таблицы в любое время используйте ANALYZE TABLE. Чтобы всегда извлекать самую последнюю статистику напрямую из движков хранилища, установите information_schema_stats_expiry=0. Для получения дополнительной информации см. Раздел 10.2.3, «Оптимизация запросов INFORMATION_SCHEMA».

Примечание

Если переменная сервера innodb_read_only включена, ANALYZE TABLE может завершиться ошибкой, так как он не может обновить таблицы статистики в словаре данных, использующие InnoDB. Для операций ANALYZE TABLE, обновляющих распределение ключей, ошибка может произойти даже если операция обновляет саму таблицу (например, если это таблица MyISAM). Чтобы получить обновлённую статистику распределения, установите information_schema_stats_expiry=0.

Таблица STATISTICS содержит следующие столбцы:

  • TABLE_CATALOG

    Имя каталога, к которому принадлежит таблица, содержащая индекс. Это значение всегда def.

  • TABLE_SCHEMA

    Имя схемы (базы данных), к которой принадлежит таблица, содержащая индекс.

  • TABLE_NAME

    Имя таблицы, содержащей индекс.

  • NON_UNIQUE

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

  • INDEX_SCHEMA

    Имя схемы (базы данных), к которой принадлежит индекс.

  • INDEX_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, если нет.

  • NULLABLE

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

  • INDEX_TYPE

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

  • COMMENT

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

  • INDEX_COMMENT

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

  • IS_VISIBLE

    Видим ли индекс оптимизатору. См. Раздел 10.3.12, «Невидимые индексы».

  • EXPRESSION

    MySQL поддерживает функциональные части ключа (см. Функциональные части ключа), что влияет на столбцы COLUMN_NAME и EXPRESSION:

    • Для функциональной части ключа столбец COLUMN_NAME указывает на индексируемый столбец, а столбец EXPRESSION равен NULL.

    • Для функциональной части ключа столбец COLUMN_NAME равен NULL, а столбец EXPRESSION указывает на выражение для части ключа.

Примечания

  • Стандартной таблицы INFORMATION_SCHEMA для индексов нет. Список столбцов MySQL похож на то, что возвращает SQL Server 2000 для sp_statistics, за исключением того, что QUALIFIER и OWNER заменены на CATALOG и SCHEMA, соответственно.

Информация об индексах таблиц также доступна с помощью оператора SHOW INDEX. См. Раздел 15.7.7.24, «Оператор SHOW INDEX». Следующие операторы эквивалентны:

SELECT * FROM INFORMATION_SCHEMA.STATISTICS
  WHERE table_name = 'tbl_name'
  AND table_schema = 'db_name'

SHOW INDEX
  FROM tbl_name
  FROM db_name

Информация о сгенерированных невидимых столбцах первичного ключа по умолчанию отображается в этой таблице. Вы можете скрыть эту информацию, установив 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/information-schema-statistics-table.html

Spec-Zone.ru

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