24.4.25 Просмотр INFORMATION_SCHEMA INNODB_SYS_TABLESTATS
Таблица INNODB_SYS_TABLESTATS предоставляет представление о низкоуровневой статистической информации о InnoDB таблицах. Данные используются оптимизатором MySQL для расчета, какой индекс использовать при запросе к InnoDB таблице. Эта информация получена из структур данных в оперативной памяти, а не из данных, хранящихся на диске. Нет соответствующей внутренней InnoDB системной таблицы.
InnoDB таблицы представлены в этом представлении, если они были открыты с момента последней перезагрузки сервера и не вышли из кэша таблиц. Таблицы, для которых доступна постоянная статистика, всегда представлены в этом представлении.
Статистика таблиц обновляется только для операций DELETE или UPDATE, которые изменяют индексированные столбцы. Статистика не обновляется операциями, которые изменяют только неиндексированные столбцы.
ANALYZE TABLE очищает статистику таблицы и устанавливает значение столбца STATS_INITIALIZED в Uninitialized. Статистика собирается снова при следующем обращении к таблице.
Для связанной информации об использовании и примеров см. Раздел 14.16.3, «Системные таблицы InnoDB INFORMATION_SCHEMA».
Таблица INNODB_SYS_TABLESTATS имеет следующие столбцы:
-
TABLE_IDИдентификатор, представляющий таблицу, для которой доступна статистика; то же значение, что и
INNODB_SYS_TABLES.TABLE_ID. -
NAMEИмя таблицы; то же значение, что и
INNODB_SYS_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_SYS_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.