28.4.26 Просмотр INFORMATION_SCHEMA INNODB_TABLESTATS
Таблица INNODB_TABLESTATS предоставляет представление информации о низком уровне состояния таблиц InnoDB. Эти данные используются оптимизатором MySQL для расчёта, какой индекс использовать при запросе к таблице InnoDB. Эта информация извлекается из структур данных в памяти, а не из данных, хранящихся на диске. Нет соответствующей внутренней таблицы системы InnoDB.
Таблицы InnoDB отображаются в этом представлении, если они были открыты с момента последней перезагрузки сервера и не были удалены из кэша таблиц. Таблицы, для которых доступны постоянные статистики, всегда отображаются в этом представлении.
Статистика таблицы обновляется только для операций DELETE или UPDATE, которые изменяют индексированные столбцы. Статистика не обновляется операциями, которые изменяют только неиндексированные столбцы.
ANALYZE TABLE очищает статистику таблицы и устанавливает столбец STATS_INITIALIZED в значение Uninitialized. Статистика собирается снова при следующем обращении к таблице.
Для связанной информации об использовании и примеров см. Раздел 17.15.3, «Таблицы схемы InnoDB INFORMATION_SCHEMA».
В таблице INNODB_TABLESTATS есть следующие столбцы:
-
TABLE_IDИдентификатор, представляющий таблицу, для которой доступна статистика; то же значение, что и
INNODB_TABLES.TABLE_ID. -
NAMEНазвание таблицы; то же значение, что и
INNODB_TABLES.NAME. -
STATS_INITIALIZEDЗначение равно
Initialized, если статистика уже собрана, иUninitialized, если нет. -
NUM_ROWSТекущее оценочное количество строк в таблице. Обновляется после каждой операции DML. Значение может быть неточным, если в таблицу вводятся или удаляются строки не подтверждёнными транзакциями.
-
CLUST_INDEX_SIZEКоличество страниц на диске, хранящих кластерированный индекс, который содержит данные таблицы
InnoDBв порядке первичного ключа. Это значение может быть нулевым, если для таблицы ещё не собрана статистика. -
OTHER_INDEX_SIZEКоличество страниц на диске, хранящих все вторичные индексы таблицы. Это значение может быть нулевым, если для таблицы ещё не собрана статистика.
-
MODIFIED_COUNTERКоличество строк, изменённых операциями DML, такими как
INSERT,UPDATE,DELETE, а также каскадные операции от внешних ключей. Этот столбец сбрасывается каждый раз, когда пересчитывается статистика таблицы. -
AUTOINCСледующее число, которое будет выдано для любой операции на основе автоинкремента. Скорость изменения значения
AUTOINCзависит от того, сколько раз запрашивались числа автоинкремента и сколько чисел предоставляется за каждый запрос. -
REF_COUNTКогда этот счётчик достигает нуля, метаданные таблицы могут быть удалены из кэша таблиц.
Пример
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESTATS where TABLE_ID = 71\G
*************************** 1. row ***************************
TABLE_ID: 71
NAME: test/t1
STATS_INITIALIZED: Initialized
NUM_ROWS: 1
CLUST_INDEX_SIZE: 1
OTHER_INDEX_SIZE: 0
MODIFIED_COUNTER: 1
AUTOINC: 0
REF_COUNT: 1
Примечания
Эта таблица полезна в основном для мониторинга производительности на уровне экспертов или при разработке расширений MySQL, связанных с производительностью.
Для запроса к этой таблице необходимо иметь право
PROCESS.Используйте таблицу
INFORMATION_SCHEMACOLUMNSили операторSHOW COLUMNSдля просмотра дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.
© 2025 Oracle
Licensed under the GPLv2 License.