13.7.5.36 Оператор SHOW TABLE STATUS
SHOW TABLE STATUS
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW TABLE STATUS работает как SHOW TABLES, но предоставляет много информации о каждой таблице, не являющейся TEMPORARY. Вы также можете получить этот список, используя команду mysqlshow --status db_name. Оператор LIKE, если он указан, указывает, какие имена таблиц нужно сопоставить. Оператор WHERE может быть указан для выбора строк с использованием более общих условий, как описано в разделе 24.8 «Расширения оператора SHOW».
Этот оператор также отображает информацию о представленних.
SHOW TABLE STATUS вывод имеет следующие столбцы:
-
NameИмя таблицы.
-
EngineСправочная система хранения для таблицы. Смотрите главу 14 «Справочная система InnoDB» и главу 15 «Альтернативные Справочные системы».
Для разбиеённых таблиц
Engineпоказывает имя справочной системы хранения, используемой всеми разбиениями. -
VersionНомер версии файла данных таблицы.
-
Row_formatФормат хранения строк (
Fixed,Dynamic,Compressed,Redundant,Compact). Для таблицMyISAM,Dynamicсоответствует тому, что сообщает myisamchk -dvv какPacked. Формат таблицInnoDB— это либоRedundantилиCompactпри использовании формата файлаAntelope, илиCompressedилиDynamicпри использовании формата файлаBarracuda. -
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';Дополнительную информацию см. в разделе 24.3.16 «Таблица 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.Столбец
Update_timeтакже отображает эту информацию для разбиеённых таблицInnoDB. -
Check_timeДата последней проверки таблицы. Не все справочные системы хранения обновляют это время, в таком случае значение всегда
NULL.Для разбиеённых таблиц
InnoDBCheck_timeвсегдаNULL. -
CollationЗначение по умолчанию сопоставления таблицы. Вывод не явно отображает кодировку по умолчанию таблицы, но имя сопоставления начинается с имени набора символов.
-
ChecksumТекущее значение контрольной суммы, если оно есть.
-
Create_optionsДополнительные параметры, использованные при
CREATE TABLE.Create_optionsпоказываетpartitionedдля разбиеённой таблицы.Create_optionsотображает параметр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показывает выделенное пространство для дисковой части таблицы или фрагмента данных на диске. (Использование ресурсов памяти отображается в столбцеData_length.)Для
MEMORYтаблиц, значенияData_length,Max_data_lengthиIndex_lengthприблизительно соответствуют фактическому объёму выделенной памяти. Алгоритм выделения резервирует память большими блоками для уменьшения числа операций выделения.Для представлений все столбцы, отображаемые
SHOW TABLE STATUS, являютсяNULL, за исключением того, чтоNameуказывает имя представления, аCommentговоритVIEW.
Информация о таблицах также доступна из таблицы INFORMATION_SCHEMA TABLES. См. Раздел 24.3.25, «Таблица INFORMATION_SCHEMA TABLES».
© 2025 Oracle
Licensed under the GPLv2 License.