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.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.