Spec-Zone.ru › MySQL 9.2

15.7.7.38 Отображение состояния таблицы

SHOW TABLE STATUS
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

SHOW TABLE STATUS работает так же, как SHOW TABLES, но предоставляет много информации о каждой не-TEMPORARY таблице. Этот список также можно получить, используя команду mysqlshow --status db_name. Оператор LIKE, если указан, указывает, какие имена таблиц необходимо сопоставить. Оператор WHERE может быть использован для выбора строк с помощью более общих условий, как описано в Разделе 28.8, «Расширения для операторов SHOW».

Этот оператор также отображает информацию о представлениях.

Вывод оператора SHOW TABLE STATUS содержит следующие столбцы:

  • Name

    Имя таблицы.

  • Engine

    Схема хранения таблицы. См. Главу 17, «Система хранения InnoDB», и Главу 18, «Альтернативные системы хранения».

    Для разбиений таблиц, Engine отображает имя системы хранения, используемой всеми разбиениями.

  • Version

    Этот столбец не используется. С уходом файлов .frm в MySQL 8.0, этот столбец теперь содержит жёстко заданное значение 10, которое было последней версией файла .frm, используемой в MySQL 5.7.

  • Row_format

    Формат хранения строк (Fixed, Dynamic, Compressed, Redundant, Compact). Для таблиц MyISAM, Dynamic соответствует тому, что сообщает myisamchk -dvv как Packed.

  • Rows

    Количество строк. Некоторые системы хранения, такие как MyISAM, хранят точное значение. Для других систем хранения, таких как InnoDB, это значение является приближённым и может отличаться от фактического значения на 40-50%. В таких случаях используйте SELECT COUNT(*) для получения точного подсчёта.

    Значение Rows равно NULL для таблиц INFORMATION_SCHEMA.

    Для таблиц InnoDB, количество строк является лишь приблизительной оценкой, используемой в оптимизации SQL. (Это также верно, если таблица InnoDB разбита на части.)

  • Avg_row_length

    Средняя длина строки.

  • Data_length

    Для MyISAM, Data_length — это размер файла данных в байтах.

    Для InnoDB, Data_length — это приблизительный объём выделенного пространства для кластеризованного индекса в байтах. Конкретно, это размер кластеризованного индекса в страницах, умноженный на InnoDB размер страницы.

    См. примечания в конце этого раздела для получения информации об других системах хранения.

  • Max_data_length

    Для MyISAM, Max_data_length — это максимальная длина файла данных. Это общее количество байтов данных, которые могут быть сохранены в таблице, учитывая размер указателя данных.

    Не используется для InnoDB.

    См. примечания в конце этого раздела для получения информации об других системах хранения.

  • Index_length

    Для MyISAM, Index_length — это размер файла индекса в байтах.

    Для InnoDB, Index_length — это приблизительный объём выделенного пространства для некластеризованных индексов в байтах. Конкретно, это сумма размеров некластеризованных индексов в страницах, умноженная на InnoDB размер страницы.

    См. примечания в конце этого раздела для получения информации об других системах хранения.

  • Data_free

    Количество выделенных, но неиспользуемых байтов.

    Таблицы InnoDB сообщают о свободном пространстве в табличном пространстве, к которому принадлежит таблица. Для таблицы, расположенной в общем табличном пространстве, это свободное пространство общего табличного пространства. Если вы используете несколько табличных пространств и у таблицы есть собственное табличное пространство, свободное пространство относится только к этой таблице. Свободное пространство означает количество байтов в полностью свободных диапазонах минус запасная величина. Даже если свободное пространство отображается как 0, возможно вставка строк, пока не потребуется выделение новых диапазонов.

    Для NDB Cluster, Data_free показывает выделенное на диске, но не используемое пространств для таблицы или фрагмента данных на диске. (Использование ресурсов памяти отображается столбцом Data_length).

    Для разбиений таблиц это значение является лишь приблизительным и может не быть абсолютно точным. Более точный метод получения этой информации в таких случаях — запросить таблицу INFORMATION_SCHEMA PARTITIONS, как показано в этом примере:

    SELECT SUM(DATA_FREE)
        FROM  INFORMATION_SCHEMA.PARTITIONS
        WHERE TABLE_SCHEMA = 'mydb'
        AND   TABLE_NAME   = 'mytable';
    

    Для получения дополнительной информации, см. Раздел 28.3.22, «Таблица INFORMATION_SCHEMA PARTITIONS».

  • Auto_increment

    Следующее AUTO_INCREMENT значение.

  • Create_time

    Время создания таблицы.

  • Update_time

    Время последнего обновления файла данных. Для некоторых систем хранения это значение равно NULL. Например, InnoDB хранит несколько таблиц в своём и метка времени файла данных не применяется. Даже в режиме с каждой InnoDB таблицей в отдельном .ibd файле, может отложить запись в файл данных, поэтому время модификации файла отличается от времени последней вставки, обновления или удаления. Для MyISAM используется метка времени файла данных; однако в Windows метка времени не обновляется обновлениями, поэтому значение неточно.

    Update_time отображает отметку времени последнего UPDATE, INSERT или DELETE, выполненных на InnoDB таблицах, которые не разбиты на части. Для MVCC, метка времени отражает COMMIT время, которое считается последним временем обновления. Метки времени не сохраняются при перезапуске сервера или при удалении таблицы из кэша словаря данных InnoDB.

  • Check_time

    Время последней проверки таблицы. Не все системы хранения обновляют это время, в таком случае значение всегда равно NULL.

    Для разбиений InnoDB таблиц, Check_time всегда равно NULL.

  • Collation

    Значение по умолчанию сопоставления таблицы. В выводе явно не указано значение по умолчанию набора символов таблицы, но имя сопоставления начинается с имени набора символов.

  • Checksum

    Текущее значение контрольной суммы, если таковое имеется.

  • Create_options

    Дополнительные параметры, используемые с CREATE TABLE.

    Create_options отображает partitioned для разбиений таблиц.

    Create_options отображает оператор ENCRYPTION для табличных пространств с файлами на каждую таблицу, если таблица зашифрована или если указанное шифрование отличается от шифрования схемы. Оператор шифрования не отображается для таблиц, созданных в общих табличных пространствах. Чтобы определить зашифрованные табличные пространства с файлами на каждую таблицу и общие табличные пространства, запросите столбец INNODB_TABLESPACES таблицы ENCRYPTION.

    При создании таблицы с отключенным , используется форма строки по умолчанию системы хранения, если указанная форма строки не поддерживается. Фактическая форма строки таблицы отображается в столбце Row_format. Create_options отображает формат строки, который был указан в операторе CREATE TABLE.

    При изменении системы хранения таблицы параметры таблицы, которые не применимы к новой системе хранения, сохраняются в определении таблицы, чтобы можно было вернуть таблицу с её ранее определёнными параметрами к исходной системе хранения, если необходимо. Create_options может отобразить сохранённые параметры.

  • Comment

    Комментарий, использованный при создании таблицы (или информация о том, почему MySQL не смог получить информацию о таблице).

Примечания
  • Для таблиц InnoDB, SHOW TABLE STATUS не предоставляет точных статистических данных, за исключением физического размера, зарезервированного для таблицы. Количество строк является лишь приблизительной оценкой, используемой в оптимизации SQL.

  • Для таблиц NDB, вывод этого оператора показывает соответствующие значения для столбцов Avg_row_length и Data_length, за исключением того, что столбцы BLOB не учитываются.

  • Для таблиц NDB, Data_length включает данные, хранящиеся только в оперативной памяти; столбцы Max_data_length и Data_free относятся к данным на диске.

  • Для таблиц NDB Cluster Disk Data, Max_data_length показывает выделенное пространство для дисковой части таблицы или фрагмента Disk Data. (Использование ресурсов оперативной памяти отображается столбцом Data_length.)

  • Для MEMORY таблиц, значения Data_length, Max_data_length и Index_length приблизительно соответствуют фактическому объёму выделенной памяти. Алгоритм выделения резервирует память большими блоками для уменьшения числа операций выделения.

  • Для представлений, большинство столбцов, отображаемых с помощью SHOW TABLE STATUS, равны 0 или NULL, за исключением того, что Name указывает имя представления, Create_time указывает время создания, а Comment показывает VIEW.

Информация о таблицах также доступна в таблице INFORMATION_SCHEMA TABLES. См. Раздел 28.3.40, «Таблица INFORMATION_SCHEMA TABLES».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/show-table-status.html

Spec-Zone.ru

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