Spec-Zone.ru › MySQL 8.4

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-8.4-en/information-schema-innodb-tablestats-table.html

Spec-Zone.ru

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