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 9.2 имя файла отображается с относительным путем; для файла журнала отката этот путь является относительным к каталогу; для файла данных — к каталогу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: Для файла журнала отката данных на диске — автоматически сгенерированный номер ID группы журнала, к которой принадлежит файл журнала. Это то же самое значение, что и для столбца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 это значение всегда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 9.2.-
Следующий запрос возвращает информацию о всех таблицах
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.22, «Оператор 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.