Spec-Zone.ru › MySQL 8.4

28.3.34 Таблица 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.23, «Утверждение 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.20.11, «Сгенерированные невидимые первичные ключи».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/information-schema-statistics-table.html

Spec-Zone.ru

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