-
Notifications
You must be signed in to change notification settings - Fork 111
FILES
xiaoboluo768 edited this page Jun 7, 2020
·
2 revisions
- 该表提供查询MySQL的数据表空间文件相关的信息,包含InnoDB存储引擎和NDB存储引擎相关的数据文件信息,由于NDB存储引擎在国内较少使用,我们大多数场景(95%以上场景InnoDB存储引擎都满可以使用)都是使用InnoDB存储引擎,以下我们只针对InnoDB存储引擎做介绍
- 该表是Memory存储引擎表
- 表定义语句
CREATE TEMPORARY TABLE `FILES` (
`FILE_ID` bigint(4) NOT NULL DEFAULT '0',
`FILE_NAME` varchar(4000) DEFAULT NULL,
`FILE_TYPE` varchar(20) NOT NULL DEFAULT '',
`TABLESPACE_NAME` varchar(64) DEFAULT NULL,
`TABLE_CATALOG` varchar(64) NOT NULL DEFAULT '',
`TABLE_SCHEMA` varchar(64) DEFAULT NULL,
`TABLE_NAME` varchar(64) DEFAULT NULL,
`LOGFILE_GROUP_NAME` varchar(64) DEFAULT NULL,
`LOGFILE_GROUP_NUMBER` bigint(4) DEFAULT NULL,
`ENGINE` varchar(64) NOT NULL DEFAULT '',
`FULLTEXT_KEYS` varchar(64) DEFAULT NULL,
`DELETED_ROWS` bigint(4) DEFAULT NULL,
`UPDATE_COUNT` bigint(4) DEFAULT NULL,
`FREE_EXTENTS` bigint(4) DEFAULT NULL,
`TOTAL_EXTENTS` bigint(4) DEFAULT NULL,
`EXTENT_SIZE` bigint(4) NOT NULL DEFAULT '0',
`INITIAL_SIZE` bigint(21) unsigned DEFAULT NULL,
`MAXIMUM_SIZE` bigint(21) unsigned DEFAULT NULL,
`AUTOEXTEND_SIZE` bigint(21) unsigned DEFAULT NULL,
`CREATION_TIME` datetime DEFAULT NULL,
`LAST_UPDATE_TIME` datetime DEFAULT NULL,
`LAST_ACCESS_TIME` datetime DEFAULT NULL,
`RECOVER_TIME` bigint(4) DEFAULT NULL,
`TRANSACTION_COUNTER` bigint(4) DEFAULT NULL,
`VERSION` bigint(21) unsigned DEFAULT NULL,
`ROW_FORMAT` varchar(10) DEFAULT NULL,
`TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
`AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
`DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
`DATA_FREE` bigint(21) unsigned DEFAULT NULL,
`CREATE_TIME` datetime DEFAULT NULL,
`UPDATE_TIME` datetime DEFAULT NULL,
`CHECK_TIME` datetime DEFAULT NULL,
`CHECKSUM` bigint(21) unsigned DEFAULT NULL,
`STATUS` varchar(20) NOT NULL DEFAULT '',
`EXTRA` varchar(255) DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8
- 表字段含义(该表中所有字段都为 "MySQL extension" 列)
- FILE_ID:表空间ID,也称"space_id"或"fil_space_t::id"
- FILE_NAME:数据文件(表空间)名称。使用独立表空间和常规表空间的表的数据文件名中都有一个.ibd文件扩展名。undo log的前缀为"undo",系统表空间的前缀是"ibdata",临时表空间的前缀是"ibtmp",这些表空间文件的名称中都包含了文件路径(与MySQL数据目录相关,通常只有undo log为绝对路径,其他表空间文件为相对路径)
- FILE_TYPE:表空间文件类型。 InnoDB表空间文件有三种可能的文件类型。
* TABLESPACE:表示表相关的系统表空间、常规表空间、独立表空间文件或其他形式的用户数据文件类型 * TEMPORARY:表示临时表空间的文件类型 * UNDO LOG:表示undo log表空间文件类型
- TABLESPACE_NAME:表空间的SQL名称。常规表空间名称是SYS_TABLESPACES.NAME值。对于其他表空间文件,名称以"innodb_"开头,例如:"innodb_system"、"innodb_undo"和"innodb_file_per_table"。其中,"innodb_file_per_table_##"表示独立表空间名称(##表示表空间ID)
- ENGINE:存储引擎名称。对于InnoDB存储引擎的文件,该列值总是InnoDB
- FREE_EXTENTS:表示当前数据文件中空闲的可用区块的数量
- TOTAL_EXTENTS:表示当前数据文件中总的区块数量。不计算文件末尾的部分
- EXTENT_SIZE:表示数据文件的区块大小。对于4k,8k或16k页面大小的数据文件,区块是1048576(1MB)。对于32k页面大小的文件,区块大小为2097152字节(2MB),对于64k页面大小的文件,区块大小为4194304(4MB)。 INFORMATION_SCHEMA.FILES不记录InnoDB页面大小。页面大小由系统配置参数innodb_page_size定义。另外,区块大小信息也可以从INNODB_SYS_TABLESPACES中查询,其中FILES.FILE_ID 即为 INNODB_SYS_TABLESPACES.SPACE_ID
- INITIAL_SIZE:表示数据文件的初始大小,以字节为单位
- MAXIMUM_SIZE:表示数据文件中允许的最大字节数。除了系统表空间和临时表空间可以使用参数定义一个最大值之外(不设置自动扩展,指定的表空间大小即为该数据文件的最大值。系统表空间文件大小由innodb_data_file_path定义,临时表空间文件大小由innodb_temp_data_file_path定义),所有的数据文件的最大值均为NULL。当数据空间文件的最大值为NULL时,表示不限制表空间文件的文件大小限制
- AUTOEXTEND_SIZE:表示表空间文件的自动扩展大小,由innodb_data_file_path系统配置参数定义(临时表空间的自动扩展大小由系统配置参数innodb_temp_data_file_path定义)
- DATA_FREE:表示整个表空间的可用空间总量(以字节为单位)。预定义的系统表空间(包括系统表空间和临时表空间)可能有一个或多个数据文件
- STATUS:默认为NORMAL。 InnoDB的独立表空间文件的信息可能会被记录为IMPORTING,此时表明表空间文件不可用
- PS:
- 以上字段含义解释仅适用于InnoDB引擎的数据文件。下面没有提及到的INFORMATION_SCHEMA.FILES表中的字段不适用于InnoDB存储引擎,且当文件为InnoDB引擎时这些未提及的字段信息显示为NULL值。
- 该表中的数据是根据缓存在内存中的已打开数据文件来记录的,与查询INFORMATION_SCHEMA.INNODB_SYS_DATAFILES表中的内部数据字典信息不同,INFORMATION_SCHEMA.INNODB_SYS_DATAFILES中的数据是来自InnoDB存储引擎的内部数据字典表SYS_DATAFILES
- INFORMATION_SCHEMA.FILES表中记录的的数据包含了临时表空间数据信息(undo log独立表空间文件的信息也由INFORMATION_SCHEMA.FILES表记录)。临时表空间文件的数据信息在内部数据字典表SYS_DATAFILES中不可用,因此INNODB_SYS_DATAFILES表不记录。
- 表记录内容示例
# 表完整行记录数据
admin@localhost : information_schema 05:44:39> select * from FILES limit 1\G;
*************************** 1. row ***************************
FILE_ID: 0
FILE_NAME: /home/mysql/data/mysqldata1/innodb_ts/ibdata1
FILE_TYPE: TABLESPACE
TABLESPACE_NAME: innodb_system
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: 3
TOTAL_EXTENTS: 2048
EXTENT_SIZE: 1048576
INITIAL_SIZE: 2147483648
MAXIMUM_SIZE: NULL
AUTOEXTEND_SIZE: 67108864
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: 2105540608
CREATE_TIME: NULL
UPDATE_TIME: NULL
CHECK_TIME: NULL
CHECKSUM: NULL
STATUS: NORMAL
EXTRA: NULL
1 row in set (0.00 sec)
# 该表字段较多,通常,我们可能只需要查询一部分字段即可,类似如下:
root@localhost : information_schema 12:22:27> SELECT FILE_ID, FILE_NAME, FILE_TYPE, TABLESPACE_NAME, FREE_EXTENTS, TOTAL_EXTENTS, EXTENT_SIZE, INITIAL_SIZE, MAXIMUM_SIZE, AUTOEXTEND_SIZE, DATA_FREE, STATUS ENGINE FROM INFORMATION_SCHEMA.FILES \G
- 注意:该表中的数据没有对应的show语句查询方式
上一篇:EVENTS表 |下一篇:GLOBAL_STATUS、GLOBAL_VARIABLES、SESSION_STATUS、SESSION_VARIABLES表
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!