The FILES table provides information about the
files in which MySQL tablespace data is stored.
The FILES table provides information about
InnoDB data files. In NDB Cluster, this table
also provides information about the files in which NDB Cluster
Disk Data tables are stored. For additional information specific
to InnoDB, see
InnoDB Notes, later in this section;
for additional information specific to NDB Cluster, see
NDB Notes.
The FILES table has these columns:
FILE_IDFor
InnoDB: The tablespace ID, also referred to as thespace_idorfil_space_t::id.For
NDB: A file identifier.FILE_IDcolumn values are auto-generated.FILE_NAMEFor
InnoDB: The name of the data file. File-per-table and general tablespaces have an.ibdfile name extension. Undo tablespaces are prefixed byundo. The system tablespace is prefixed byibdata. The global temporary tablespace is prefixed byibtmp. The file name includes the file path, which may be relative to the MySQL data directory (the value of thedatadirsystem variable).For
NDB: The name of an undo log file created byCREATE LOGFILE GROUPorALTER LOGFILE GROUP, or of a data file created byCREATE TABLESPACEorALTER TABLESPACE. In NDB 9.1, the file name is shown with a relative path; for an undo log file, this path is relative to the directory; for a data file, it is relative to the directoryDataDir/ndb_NodeId_fs/LG. This means, for example, that the name of a data file created withDataDir/ndb_NodeId_fs/TSALTER TABLESPACE ts ADD DATAFILE 'data_2.dat' INITIAL SIZE 256Mis shown as./data_2.dat.FILE_TYPEFor
InnoDB: The tablespace file type. There are three possible file types forInnoDBfiles.TABLESPACEis the file type for any system, general, or file-per-table tablespace file that holds tables, indexes, or other forms of user data.TEMPORARYis the file type for temporary tablespaces.UNDO LOGis the file type for undo tablespaces, which hold undo records.For
NDB: One of the valuesUNDO LOGorDATAFILE.TABLESPACE_NAMEThe name of the tablespace with which the file is associated.
For
InnoDB: General tablespace names are as specified when created. File-per-table tablespace names are shown in the following format:. Theschema_name/table_nameInnoDBsystem tablespace name isinnodb_system. The global temporary tablespace name isinnodb_temporary. Default undo tablespace names areinnodb_undo_001andinnodb_undo_002. User-created undo tablespace names are as specified when created.TABLE_CATALOGThis value is always empty.
TABLE_SCHEMAThis is always
NULL.TABLE_NAMEThis is always
NULL.LOGFILE_GROUP_NAMEFor
InnoDB: This is alwaysNULL.For
NDB: The name of the log file group to which the log file or data file belongs.LOGFILE_GROUP_NUMBERFor
InnoDB: This is alwaysNULL.For
NDB: For a Disk Data undo log file, the auto-generated ID number of the log file group to which the log file belongs. This is the same as the value shown for theidcolumn in thendbinfo.dict_obj_infotable and thelog_idcolumn in thendbinfo.logspacesandndbinfo.logspacestables for this undo log file.ENGINEFor
InnoDB: This value is alwaysInnoDB.For
NDB: This value is alwaysndbcluster.FULLTEXT_KEYSThis is always
NULL.DELETED_ROWSThis is always
NULL.UPDATE_COUNTThis is always
NULL.FREE_EXTENTSFor
InnoDB: The number of fully free extents in the current data file.For
NDB: The number of extents which have not yet been used by the file.TOTAL_EXTENTSFor
InnoDB: The number of full extents used in the current data file. Any partial extent at the end of the file is not counted.For
NDB: The total number of extents allocated to the file.EXTENT_SIZEFor
InnoDB: Extent size is 1048576 (1MB) for files with a 4KB, 8KB, or 16KB page size. Extent size is 2097152 bytes (2MB) for files with a 32KB page size, and 4194304 (4MB) for files with a 64KB page size.FILESdoes not reportInnoDBpage size. Page size is defined by theinnodb_page_sizesystem variable. Extent size information can also be retrieved from theINNODB_TABLESPACEStable whereFILES.FILE_ID = INNODB_TABLESPACES.SPACE.For
NDB: The size of an extent for the file in bytes.INITIAL_SIZEFor
InnoDB: The initial size of the file in bytes.For
NDB: The size of the file in bytes. This is the same value that was used in theINITIAL_SIZEclause of theCREATE LOGFILE GROUP,ALTER LOGFILE GROUP,CREATE TABLESPACE, orALTER TABLESPACEstatement used to create the file.MAXIMUM_SIZEFor
InnoDB: The maximum number of bytes permitted in the file. The value isNULLfor all data files except for predefined system tablespace data files. Maximum system tablespace file size is defined byinnodb_data_file_path. Maximum global temporary tablespace file size is defined byinnodb_temp_data_file_path. ANULLvalue for a predefined system tablespace data file indicates that a file size limit was not defined explicitly.For
NDB: This value is always the same as theINITIAL_SIZEvalue.AUTOEXTEND_SIZEThe auto-extend size of the tablespace. For
NDB,AUTOEXTEND_SIZEis alwaysNULL.CREATION_TIMEThis is always
NULL.LAST_UPDATE_TIMEThis is always
NULL.LAST_ACCESS_TIMEThis is always
NULL.RECOVER_TIMEThis is always
NULL.TRANSACTION_COUNTERThis is always
NULL.VERSIONFor
InnoDB: This is alwaysNULL.For
NDB: The version number of the file.ROW_FORMATFor
InnoDB: This is alwaysNULL.For
NDB: One ofFIXEDorDYNAMIC.TABLE_ROWSThis is always
NULL.AVG_ROW_LENGTHThis is always
NULL.DATA_LENGTHThis is always
NULL.MAX_DATA_LENGTHThis is always
NULL.INDEX_LENGTHThis is always
NULL.DATA_FREEFor
InnoDB: The total amount of free space (in bytes) for the entire tablespace. Predefined system tablespaces, which include the system tablespace and temporary table tablespaces, may have one or more data files.For
NDB: This is alwaysNULL.CREATE_TIMEThis is always
NULL.UPDATE_TIMEThis is always
NULL.CHECK_TIMEThis is always
NULL.CHECKSUMThis is always
NULL.STATUSFor
InnoDB: This value isNORMALby default.InnoDBfile-per-table tablespaces may reportIMPORTING, which indicates that the tablespace is not yet available.For
NDB: For NDB Cluster Disk Data files, this value is alwaysNORMAL.EXTRAFor
InnoDB: This is alwaysNULL.For
NDB: For undo log files, this column shows the undo log buffer size; for data files, it is always NULL. A more detailed explanation is provided in the next few paragraphs.NDBstores a copy of each data file and each undo log file on each data node in the cluster. TheFILEStable contains one row for each such file. Suppose that you run the following two statements on an NDB Cluster with four data nodes: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;After running these two statements successfully, you should see a result similar to the one shown here for this query against the
FILEStable: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 | +--------------------+-----------+--------------------------+
The following notes apply to InnoDB data
files.
Information reported by
FILESis obtained from theInnoDBin-memory cache for open files, whereasINNODB_DATAFILESgets its data from theInnoDBSYS_DATAFILESinternal data dictionary table.The information provided by
FILESincludes global temporary tablespace information which is not available in theInnoDBSYS_DATAFILESinternal data dictionary table, and is therefore not included inINNODB_DATAFILES.Undo tablespace information is shown in
FILESwhen separate undo tablespaces are present, as they are by default in MySQL 9.1.The following query returns all
FILEStable information relating toInnoDBtablespaces.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
The
FILEStable provides information about Disk Data files only; you cannot use it for determining disk space allocation or availability for individualNDBtables. However, it is possible to see how much space is allocated for eachNDBtable having data stored on disk—as well as how much remains available for storage of data on disk for that table—using ndb_desc.Much of the information contained in the
FILEStable can also be found in thendbinfofilestable.The
CREATION_TIME,LAST_UPDATE_TIME, andLAST_ACCESSEDvalues are as reported by the operating system, and are not supplied by theNDBstorage engine. Where no value is provided by the operating system, these columns displayNULL.The difference between the
TOTAL EXTENTSandFREE_EXTENTScolumns is the number of extents currently in use by the file:SELECT TOTAL_EXTENTS - FREE_EXTENTS AS extents_used FROM INFORMATION_SCHEMA.FILES WHERE FILE_NAME = './myfile.dat';To approximate the amount of disk space in use by the file, multiply that difference by the value of the
EXTENT_SIZEcolumn, which gives the size of an extent for the file in bytes:SELECT (TOTAL_EXTENTS - FREE_EXTENTS) * EXTENT_SIZE AS bytes_used FROM INFORMATION_SCHEMA.FILES WHERE FILE_NAME = './myfile.dat';Similarly, you can estimate the amount of space that remains available in a given file by multiplying
FREE_EXTENTSbyEXTENT_SIZE:SELECT FREE_EXTENTS * EXTENT_SIZE AS bytes_free FROM INFORMATION_SCHEMA.FILES WHERE FILE_NAME = './myfile.dat';ImportantThe byte values produced by the preceding queries are approximations only, and their precision is inversely proportional to the value of
EXTENT_SIZE. That is, the largerEXTENT_SIZEbecomes, the less accurate the approximations are.It is also important to remember that once an extent is used, it cannot be freed again without dropping the data file of which it is a part. This means that deletes from a Disk Data table do not release disk space.
The extent size can be set in a
CREATE TABLESPACEstatement. For more information, see Section 15.1.21, “CREATE TABLESPACE Statement”.You can obtain information about Disk Data tablespaces using the ndb_desc utility. For more information, see Section 25.6.11.1, “NDB Cluster Disk Data Objects”, as well as the description of ndb_desc.
For additional information, and examples of creating, dropping, and obtaining information about NDB Cluster Disk Data objects, see Section 25.6.11, “NDB Cluster Disk Data Tables”.