Spec-Zone.ru › MySQL 5.7

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

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

Spec-Zone.ru

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