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_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.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.