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_SCHEMAPARTITIONS, как показано в этом примере: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_TABLESPACESENCRYPTION.При создании таблицы с отключенным используется формат строк по умолчанию для сетевого движка, если указанный формат строк не поддерживается. Фактический формат строк таблицы сообщается в столбце
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.