这个专题主要讲information_ schema数据库下的一些表
如无特殊说明数据库版本为MySQL 5.7.26
1. FILES
该表提供存储MySQL表空间数据的文件的信息
它提供InnoDB数据文件的信息,如果是NDB,它提供了有关存储了NDB集群磁盘数据表的文件的信息。
对于开启了innodb_file_per_table参数,则每个表对应一个表空间,即一个数据文件 此时系统表空间可以有多个数据文件
有如下栏位
下面的介绍只是对于InnoDB引擎的描述,对于NDB,请参看最后的链接
下面提到的预定义的系统表空间包括系统表空间和临时表空间
- FILE_ID 表空间的ID
- FILE_NAME 数据文件的名称以.idb结尾,其中UNDO表空间以undo.开头,系统表空间以ibdata.开头,临时表空间以ibtmp.开头
- FILE_TYPE 文件的类型,有三种类型,普通文件(TABLESPACE) ,临时文件(TEMPORARY),UNDO日志文件(UNDO LOG)
- TABLESPACE_NAME 表空间的SQL名称,对于独立表空间来说,innodb_file_per_table_##来命名,##为FILE_ID
- TABLE_CATALOG 该值始终为空
- TABLE_SCHEMA 该值始终为NULL -TABLE_NAME 始终为NULL
- LOGFILE_GROUP_NAME 始终为NULL
- LOGFILE_GROUP_NUMBER 始终为NULL
- ENGINE始终为InnoDB
- FULLTEXT_KEYS 始终为NULL
- DELETED_ROWS始终为NULL
- UPDATE_COUNT 始终为NULL
- FREE_EXTENTS 当前文件中完全空闲的段的个数
- TOTAL_EXTENTS 当前文件完全使用的段的个数,任何
- EXTENT_SIZE 数据文件段的大小,各个page size对应的值不一样,具体见最后的链接
- INITIAL_SIZE 文件的初始大小,字节为单位
- MAXIMUM_SIZE数据文件的最大大小,以字节为单位,除了预定义的系统表空间,其值为NULL,系统表空间最大大小由innodb_data_file_path定义,最大临时表空间由innodb_temp_data_file_path定义
- AUTOEXTEND_SIZE 是在innodb_data_file_path 和innodb_temp_data_file_path中定义的自动扩展大小
- CREATION_TIME 始终为NULL
- LAST_UPDATE_TIME 始终为NULL
- LAST_ACCESS_TIME 始终为NULL
- RECOVER_TIME 始终为NULL
- TRANSACTION_COUNTER 始终为NULL
- VERSION 始终为NULL
- ROW_FORMAT 始终为NULL
- TABLE_ROWS 始终为NULL
- AVG_ROW_LENGTH 始终为NULL
- DATA_LENGTH 始终为NULL
- MAX_DATA_LENGTH 始终为NULL
- INDEX_LENGTH 始终为NULL
- DATA_FREE 整个表空间的剩余大小,字节为单位
- CREATE_TIME 始终为NULL
- UPDATE_TIME 始终为NULL
- CHECK_TIME 始终为NULL
- CHECKSUM 始终为NULL
- STATUS 正常为NORMAL,如果独立表空间文件值为IMPORTING,代表不可用
- EXTRA 始终为NULL
2.其他一些内容
如下内容只针对InnoDB数据文件
- 该表的内容获取自内存中的打开文件,而INNODB_SYS_DATAFILES表才是来源与数据字典
- 该表包括临时表空间文件,而INNODB_SYS_DATAFILES不包含
- 该表包含UNDO表空间
2. 实际截图
代码语言:javascript复制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
3. 参考链接
https://dev.mysql.com/doc/refman/5.7/en/files-table.html