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_UNIQUE0, если индекс не может содержать дубликаты, 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, «Невидимые индексы».
-
EXPRESSIONMySQL поддерживает функциональные части ключей (см. Функциональные части ключей), что влияет на столбцы
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.