Spec-Zone.ru › MySQL 5.7

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_SCHEMA PARTITIONS, как показано в этом примере:

    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.

    Для разбиеённых таблиц InnoDB Check_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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/show-table-status.html

Spec-Zone.ru

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