24.3.25 Таблица INFORMATION_SCHEMA TABLES
Таблица TABLES предоставляет информацию о таблицах в базах данных.
Таблица TABLES содержит следующие столбцы:
-
TABLE_CATALOGИмя каталога, к которому принадлежит таблица. Это значение всегда
def. -
TABLE_SCHEMAИмя схемы (базы данных), к которой принадлежит таблица.
-
TABLE_NAMEИмя таблицы.
-
TABLE_TYPEBASE 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_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может откладывать запись в файл данных, поэтому время изменения файла отличается от времени последней вставки, обновления или удаления. Для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.