Spec-Zone.ru › MySQL 9.2

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/TS. Это означает, например, что имя файла данных, созданного с помощью ALTER 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_name. Имя системного табличного пространства InnoDB — 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.

END_OF_DOCUMENT_MARKER
  • 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                     |
    +--------------------+-----------+--------------------------+
    

Примечания

  • FILES — нестандартная INFORMATION_SCHEMA таблица.

  • Для запроса к этой таблице необходим PROCESS привилегии.

Примечания InnoDB

Следующие замечания относятся к файлам данных InnoDB.

  • Информация, предоставляемая FILES, получена из кэша открытых файлов в оперативной памяти, тогда как INNODB_DATAFILES получает данные из внутренней таблицы словаря данных InnoDB SYS_DATAFILES.

  • Информация, предоставляемая FILES, включает информацию о глобальных временных таблицах, которая недоступна в внутренней таблице словаря данных InnoDB SYS_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, также доступна в таблице ndbinfo files.

  • Значения 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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/information-schema-files-table.html

Spec-Zone.ru

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