Spec-Zone.ru › MySQL 5.7

24.3.25 Таблица INFORMATION_SCHEMA TABLES

Таблица TABLES предоставляет информацию о таблицах в базах данных.

Таблица TABLES содержит следующие столбцы:

  • TABLE_CATALOG

    Имя каталога, к которому принадлежит таблица. Это значение всегда def.

  • TABLE_SCHEMA

    Имя схемы (базы данных), к которой принадлежит таблица.

  • TABLE_NAME

    Имя таблицы.

  • TABLE_TYPE

    BASE TABLE для таблицы, VIEW для представления или SYSTEM VIEW для таблицы INFORMATION_SCHEMA.

    Таблица TABLES не отображает таблицы TEMPORARY.

  • ENGINE

    Движок хранилища для таблицы. См. Главу 14, Движок хранилища InnoDB и Главу 15, Альтернативные движки хранилища.

    Для разграниченных таблиц, ENGINE показывает имя движка хранилища, используемого всеми разделами.

  • VERSION

    Номер версии файла .frm таблицы.

  • ROW_FORMAT

    Формат хранения строк (Fixed, Dynamic, Compressed, Redundant, Compact). Для таблиц MyISAM, Dynamic соответствует тому, что сообщает myisamchk -dvv как Packed. Формат таблицы InnoDB либо Redundant, либо Compact при использовании формата файла Antelope, или Compressed или Dynamic при использовании формата файла Barracuda.

  • TABLE_ROWS

    Количество строк. Некоторые движки хранилища, такие как MyISAM, хранят точное значение. Для других движков, таких как InnoDB, это значение является приблизительным и может отличаться от фактического значения на 40-50%. В таких случаях используйте SELECT COUNT(*) для получения точного подсчёта.

    TABLE_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 может откладывать запись в файл данных, поэтому время изменения файла отличается от времени последней вставки, обновления или удаления. Для MyISAM используется временная метка файла данных; однако в Windows временная метка не обновляется обновлениями, поэтому значение неточно.

    UPDATE_TIME отображает значение временной метки для последнего UPDATE, INSERT или DELETE, выполненного на InnoDB таблицах, которые не разграничены. Для MVCC значение временной метки отражает время COMMIT, которое считается временем последнего обновления. Временные метки не сохраняются при перезапуске сервера или при выводе таблицы из кэша словаря данных InnoDB.

    Столбец UPDATE_TIME также показывает эту информацию для разграниченных InnoDB таблиц.

  • CHECK_TIME

    Время последней проверки таблицы. Не все движки хранилища обновляют это время, в этом случае значение всегда NULL.

    Для разграниченных таблиц InnoDB, CHECK_TIME всегда равно NULL.

  • TABLE_COLLATION

    Значение по умолчанию сопоставления таблицы. Вывод не показывает явно набор символов по умолчанию таблицы, но имя сопоставления начинается с имени набора символов.

  • CHECKSUM

    Текущее значение контрольной суммы, если оно есть.

  • CREATE_OPTIONS

    Дополнительные параметры, используемые с CREATE TABLE.

    CREATE_OPTIONS показывает partitioned, если таблица разграничена.

    CREATE_OPTIONS показывает предложение ENCRYPTION, указанное для таблиц, созданных в табличных пространствах с файлом на таблицу.

    При создании таблицы с отключенным форматом строк используется формат строк по умолчанию движка хранилища, если указанный формат строк не поддерживается. Фактический формат строк таблицы указан в столбце ROW_FORMAT. CREATE_OPTIONS показывает формат строк, который был указан в инструкции CREATE TABLE.

    При изменении движка хранилища таблицы, параметры таблицы, которые не применимы к новому движку хранилища, сохраняются в определении таблицы для возможности возврата таблицы с её ранее определёнными параметрами к исходному движку хранилища, если необходимо. Столбец CREATE_OPTIONS может отображать сохранённые параметры.

  • TABLE_COMMENT

    Комментарий, используемый при создании таблицы (или информация о том, почему MySQL не смог получить информацию о таблице).

Примечания

  • Для таблиц NDB вывод этого оператора показывает соответствующие значения для столбцов AVG_ROW_LENGTH и DATA_LENGTH, за исключением того, что столбцы BLOB не учитываются.

  • Для таблиц NDB, DATA_LENGTH включает данные, хранящиеся только в оперативной памяти; столбцы MAX_DATA_LENGTH и DATA_FREE относятся к данным на диске.

  • Для таблиц данных на диске NDB Cluster, MAX_DATA_LENGTH показывает выделенное пространство для дисковой части таблицы или фрагмента данных на диске. (Использование ресурсов памяти для данных в оперативной памяти отображается столбцом DATA_LENGTH.)

  • Для таблиц MEMORY, значения DATA_LENGTH, MAX_DATA_LENGTH и INDEX_LENGTH приблизительно соответствуют фактическому объёму выделенной памяти. Алгоритм выделения резервирует память большими объемами, чтобы уменьшить количество операций выделения.

  • Для представлений все TABLES столбцы являются NULL, за исключением того, что TABLE_NAME указывает имя представления, а TABLE_COMMENT говорит VIEW.

Информация о таблицах также доступна из операторов SHOW TABLE STATUS и SHOW TABLES. См. Раздел 13.7.5.36, «Оператор SHOW TABLE STATUS» и Раздел 13.7.5.37, «Оператор SHOW TABLES». Следующие операторы эквивалентны:

SELECT
    TABLE_NAME, ENGINE, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH,
    DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT,
    CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, CHECKSUM,
    CREATE_OPTIONS, TABLE_COMMENT
  FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'
  [AND table_name LIKE 'wild']

SHOW TABLE STATUS
  FROM db_name
  [LIKE 'wild']

Следующие операторы эквивалентны:

SELECT
  TABLE_NAME, TABLE_TYPE
  FROM INFORMATION_SCHEMA.TABLES
  WHERE table_schema = 'db_name'
  [AND table_name LIKE 'wild']

SHOW FULL TABLES
  FROM db_name
  [LIKE 'wild']

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/information-schema-tables-table.html

Spec-Zone.ru

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