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.