28.3.15 Таблица INFORMATION_SCHEMA FILES
Таблица FILES предоставляет информацию о файлах, в которых хранятся данные табличного пространства MySQL.
Таблица FILES предоставляет информацию о файлах данных InnoDB. В NDB Cluster эта таблица также предоставляет информацию о файлах, в которых хранятся таблицы NDB Cluster Disk Data. Дополнительную информацию, специфичную для InnoDB, см. в Примечания к InnoDB в этой же секции; дополнительную информацию, специфичную для NDB Cluster, см. в Примечания к NDB Cluster.
В таблице FILES есть следующие столбцы:
-
FILE_IDДля
InnoDB: Идентификатор табличного пространства, также называемыйspace_idилиfil_space_t::id.Для
NDB: Идентификатор файла. Значения столбцаFILE_IDгенерируются автоматически. -
FILE_NAMEДля
InnoDB: Имя файла данных. Файлы-по-таблице и общие табличные пространства имеют расширение имени файла.ibd. Пространства таблиц отката имеют префиксundo. Пространство системных таблиц имеет префиксibdata. Глобальное временное табличное пространство имеет префиксibtmp. Имя файла включает путь к файлу, который может быть относительным к каталогу данных MySQL (значение системной переменнойdatadir).Для
NDB: Имя файла журнала отката, созданного с помощьюCREATE LOGFILE GROUPилиALTER LOGFILE GROUP, или файла данных, созданного с помощьюCREATE TABLESPACEилиALTER TABLESPACE. В NDB 8.4 имя файла отображается с относительным путем; для файла журнала отката этот путь относительный к каталогу; для файла данных — к каталогуDataDir/ndb_NodeId_fs/LG. Это означает, например, что имя файла данных, созданного с помощьюDataDir/ndb_NodeId_fs/TSALTER TABLESPACE ts ADD DATAFILE 'data_2.dat' INITIAL SIZE 256M, отображается как./data_2.dat. -
FILE_TYPEДля
InnoDB: Тип файла табличного пространства. Для файловInnoDBсуществует три возможных типа файлов.TABLESPACE— тип файла для любого системного, общего или файла-по-таблице табличного пространства, содержащего таблицы, индексы или другие виды пользовательских данных.TEMPORARY— тип файла для временных табличных пространств.UNDO LOG— тип файла для табличных пространств отката, содержащих записи отката.Для
NDB: Одно из значенийUNDO LOGилиDATAFILE. -
TABLESPACE_NAMEИмя табличного пространства, к которому относится файл.
Для
InnoDB: Имена общих табличных пространств указаны при создании. Имена табличных пространств «файл-по-таблице» отображаются в следующем формате:. Имя системного табличного пространстваschema_name/table_nameInnoDBравноinnodb_system. Имя глобального временного табличного пространства равноinnodb_temporary. Имена табличных пространств отката по умолчанию равныinnodb_undo_001иinnodb_undo_002. Имена пользовательских табличных пространств отката указаны при создании. -
TABLE_CATALOGЭто значение всегда пустое.
-
TABLE_SCHEMAЭто всегда
NULL. -
TABLE_NAMEЭто всегда
NULL. -
LOGFILE_GROUP_NAMEДля
InnoDB: Это всегдаNULL.Для
NDB: Имя группы файлов журнала, к которой принадлежит файл журнала или файл данных. -
LOGFILE_GROUP_NUMBERДля
InnoDB: Это всегдаNULL.Для
NDB: Для файлов журнала отката Disk Data, это автоматически сгенерированный номер идентификатора группы файлов журнала, к которой принадлежит файл журнала. Это то же самое, что и значение, отображаемое для столбцаidв таблицеndbinfo.dict_obj_infoи столбцаlog_idв таблицахndbinfo.logspacesиndbinfo.logspacesдля этого файла журнала отката. -
ENGINEДля
InnoDB: Это значение всегдаInnoDB.Для
NDB: Это значение всегдаndbcluster. -
FULLTEXT_KEYSЭто всегда
NULL. -
DELETED_ROWSЭто всегда
NULL. -
UPDATE_COUNTЭто всегда
NULL. -
FREE_EXTENTSДля
InnoDB: Количество полностью свободных экстентов в текущем файле данных.Для
NDB: Количество экстентов, которые еще не были использованы файлом. -
TOTAL_EXTENTSДля
InnoDB: Количество заполненных экстентов в текущем файле данных. Любой частичный экстент в конце файла не учитывается.Для
NDB: Общее количество экстентов, выделенных для файла. -
EXTENT_SIZEДля
InnoDB: Размер экстента составляет 1048576 (1 МБ) для файлов с размером страницы 4 КБ, 8 КБ или 16 КБ. Размер экстента составляет 2097152 байта (2 МБ) для файлов с размером страницы 32 КБ и 4194304 (4 МБ) для файлов с размером страницы 64 КБ.FILESне сообщает о размере страницыInnoDB. Размер страницы определяется системной переменнойinnodb_page_size. Информация о размере экстента также может быть получена из таблицыINNODB_TABLESPACES, гдеFILES.FILE_ID = INNODB_TABLESPACES.SPACE.Для
NDB: Размер экстента для файла в байтах. -
INITIAL_SIZEДля
InnoDB: Начальный размер файла в байтах.Для
NDB: Размер файла в байтах. Это то же значение, которое использовалось в инструкцииINITIAL_SIZEвCREATE LOGFILE GROUP,ALTER LOGFILE GROUP,CREATE TABLESPACEилиALTER TABLESPACEдля создания файла. -
MAXIMUM_SIZEДля
InnoDB: Максимальное количество байт, разрешенных в файле. Значение равноNULLдля всех файлов данных, за исключением предварительно определенных системных файлов данных табличного пространства. Максимальный размер файла системного табличного пространства определяетсяinnodb_data_file_path. Максимальный размер файла глобального временного табличного пространства определяетсяinnodb_temp_data_file_path. ЗначениеNULLдля предварительно определенного файла данных системного табличного пространства указывает, что ограничение размера файла не было явно определено.Для
NDB: Это значение всегда совпадает со значениемINITIAL_SIZE. -
AUTOEXTEND_SIZEАвтоматический размер расширения табличного пространства. Для
NDB,AUTOEXTEND_SIZEвсегда равноNULL. -
CREATION_TIMEЭто всегда
NULL. -
LAST_UPDATE_TIMEЭто всегда
NULL. -
LAST_ACCESS_TIMEЭто всегда
NULL. -
RECOVER_TIMEЭто всегда
NULL. -
TRANSACTION_COUNTERЭто всегда
NULL. -
VERSIONДля
InnoDB: Это всегдаNULL.Для
NDB: Номер версии файла. -
ROW_FORMATДля
InnoDB: Это всегдаNULL.Для
NDB: Одно изFIXEDилиDYNAMIC. -
TABLE_ROWSЭто всегда
NULL. -
AVG_ROW_LENGTHЭто всегда
NULL. -
DATA_LENGTHЭто всегда
NULL. -
MAX_DATA_LENGTHЭто всегда
NULL. -
INDEX_LENGTHЭто всегда
NULL. -
DATA_FREEДля
InnoDB: Общий объем свободного пространства (в байтах) для всего табличного пространства. Предварительно определенные системные табличные пространства, которые включают системное табличное пространство и временные табличные пространства, могут иметь один или несколько файлов данных.Для
NDB: Это всегдаNULL. -
CREATE_TIMEЭто всегда
NULL. -
UPDATE_TIMEЭто всегда
NULL. -
CHECK_TIMEЭто всегда
NULL. -
CHECKSUMЭто всегда
NULL. -
STATUSДля
InnoDB: Это значение по умолчаниюNORMAL. Файлы-по-таблице табличных пространств могут сообщать о значенииIMPORTING, что указывает на то, что табличное пространство еще недоступно.Для
NDB: Для файлов данных NDB Cluster Disk Data это значение всегдаNORMAL.
-
EXTRAДля
InnoDB: Это всегдаNULL.Для
NDB: Для файлов журнала отката этот столбец показывает размер буфера журнала отката; для файлов данных он всегда NULL. Более подробное объяснение приведено в следующих абзацах.NDBхранит копию каждого файла данных и каждого файла журнала отката на каждом узле данных в кластере. ТаблицаFILESсодержит по одной строке для каждого такого файла. Предположим, что вы выполняете следующие две инструкции на NDB Cluster с четырьмя узлами данных:CREATE LOGFILE GROUP mygroup ADD UNDOFILE 'new_undo.dat' INITIAL_SIZE 2G ENGINE NDBCLUSTER; CREATE TABLESPACE myts ADD DATAFILE 'data_1.dat' USE LOGFILE GROUP mygroup INITIAL_SIZE 256M ENGINE NDBCLUSTER;После успешного выполнения этих двух инструкций вы должны увидеть результат, похожий на представленный здесь, для этого запроса к таблице
FILES:mysql>
SELECT LOGFILE_GROUP_NAME, FILE_TYPE, EXTRA->FROM INFORMATION_SCHEMA.FILES->WHERE ENGINE = 'ndbcluster';+--------------------+-----------+--------------------------+ | LOGFILE_GROUP_NAME | FILE_TYPE | EXTRA | +--------------------+-----------+--------------------------+ | mygroup | UNDO LOG | UNDO_BUFFER_SIZE=8388608 | | mygroup | DATAFILE | NULL | +--------------------+-----------+--------------------------+
Примечания
Примечания InnoDB
Следующие замечания относятся к файлам данных InnoDB.
Информация, предоставляемая
FILES, извлекается из кеша открытых файлов в оперативной памяти, в то время какINNODB_DATAFILESполучает данные изInnoDBSYS_DATAFILESтаблицы внутренней базы данных.Информация, предоставляемая
FILES, включает информацию о глобальных временных таблицах, которая недоступна в таблицеInnoDBSYS_DATAFILESвнутренней базы данных, и поэтому не включена вINNODB_DATAFILES.Информация о пространствах таблиц отката отображается в
FILES, если присутствуют отдельные пространства таблиц отката, как это по умолчанию в MySQL 8.4.-
Следующий запрос возвращает всю информацию о таблице
FILES, относящуюся к пространствам таблицInnoDB.SELECT FILE_ID, FILE_NAME, FILE_TYPE, TABLESPACE_NAME, FREE_EXTENTS, TOTAL_EXTENTS, EXTENT_SIZE, INITIAL_SIZE, MAXIMUM_SIZE, AUTOEXTEND_SIZE, DATA_FREE, STATUS FROM INFORMATION_SCHEMA.FILES WHERE ENGINE='InnoDB'\G
Примечания NDB
Таблица
FILESпредоставляет информацию только о файлах данных на диске; вы не можете использовать её для определения распределения или доступности дискового пространства для отдельных таблицNDB. Однако, возможно увидеть, сколько места выделено для каждой таблицыNDB, хранящей данные на диске, а также сколько места осталось для хранения данных на диске для этой таблицы, используя ndb_desc.Большая часть информации, содержащейся в таблице
FILES, также находится в таблицеndbinfofiles.Значения
CREATION_TIME,LAST_UPDATE_TIMEиLAST_ACCESSEDотображаются так, как сообщает операционная система, и не предоставляются движком храненияNDB. Если операционная система не предоставляет значение, эти столбцы отображаютNULL.-
Разница между столбцами
TOTAL EXTENTSиFREE_EXTENTS— это количество фрагментов, в настоящее время используемых файлом:SELECT TOTAL_EXTENTS - FREE_EXTENTS AS extents_used FROM INFORMATION_SCHEMA.FILES WHERE FILE_NAME = './myfile.dat';Для приблизительной оценки занимаемого файлом дискового пространства, умножьте эту разницу на значение столбца
EXTENT_SIZE, которое задаёт размер фрагмента файла в байтах:SELECT (TOTAL_EXTENTS - FREE_EXTENTS) * EXTENT_SIZE AS bytes_used FROM INFORMATION_SCHEMA.FILES WHERE FILE_NAME = './myfile.dat';Аналогично, вы можете оценить оставшееся свободное место в данном файле, умножив
FREE_EXTENTSнаEXTENT_SIZE:SELECT FREE_EXTENTS * EXTENT_SIZE AS bytes_free FROM INFORMATION_SCHEMA.FILES WHERE FILE_NAME = './myfile.dat';ВажноЗначения в байтах, полученные в предыдущих запросах, являются приблизительными, и их точность обратно пропорциональна значению
EXTENT_SIZE. То есть, чем больше становитсяEXTENT_SIZE, тем менее точными становятся приближения.Также важно помнить, что после использования фрагмента его нельзя освободить повторно без удаления файла данных, частью которого он является. Это означает, что удаления из таблицы Дисковые данные не освобождают дисковое пространство.
Размер фрагмента может быть задан в инструкции
CREATE TABLESPACE. Для получения более подробной информации см. Раздел 15.1.21, «Инструкция CREATE TABLESPACE». Информацию о пространствах таблиц Дисковые данные можно получить с помощью утилиты ndb_desc. Для получения более подробной информации см. Раздел 25.6.11.1, «Объекты NDB Cluster Дисковые данные», а также описание ndb_desc.
Дополнительную информацию, а также примеры создания, удаления и получения информации об объектах NDB Cluster Дисковые данные см. в Разделе 25.6.11, «Таблицы NDB Cluster Дисковые данные».
© 2025 Oracle
Licensed under the GPLv2 License.