Spec-Zone.ru › MySQL 9.2

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_SCHEMA COLUMNS или оператор SHOW COLUMNS для просмотра дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/information-schema-innodb-tablestats-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API