Spec-Zone.ru › MySQL 8.4

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.21, «Таблица 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.38, «Таблица INFORMATION_SCHEMA TABLES».

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

Spec-Zone.ru

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