从INFORMATION_SCHEMA.FILES检索InnoDB表空间元数据
该INFORMATION_SCHEMA.FILES
表提供有关所有InnoDB
表空间类型的元数据,包括每表文件表空间,常规表空间,系统表空间,临时表表空间和撤消表空间(如果有)。
本节提供InnoDB
特定于用法的示例。有关该INFORMATION_SCHEMA.FILES
表提供的数据的更多信息,请参见“ INFORMATION_SCHEMA FILES表”。
注意所述
INNODB_TABLESPACES
和INNODB_DATAFILES
表还提供有关的元数据InnoDB
的表空间,但数据被限制在文件单次表,一般情况下,和撤消表空间。
该查询InnoDB
从与INFORMATION_SCHEMA.FILES
表InnoDB
空间相关的表字段中检索有关系统表空间的元数据。INFORMATION_SCHEMA.FILES
与InnoDB
始终不相关的字段始终返回NULL,并从查询中排除。
mysql>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.FILESWHERE TABLESPACE_NAME LIKE 'innodb_system' \G *************************** 1. row *************************** FILE_ID : 0 FILE_NAME : ./ibdata1 FILE_TYPE : TABLESPACE TABLESPACE_NAME : innodb_system FREE_EXTENTS : 0 TOTAL_EXTENTS : 12 EXTENT_SIZE : 1048576 INITIAL_SIZE : 12582912 MAXIMUM_SIZE : NULL AUTOEXTEND_SIZE : 67108864 DATA_FREE : 4194304 ENGINE : NORMAL
此查询检索每表文件和常规表空间的FILE_ID
(等效于空间ID)和FILE_NAME
(包括路径信息)InnoDB
。每表文件和常规表空间都有.ibd
文件扩展名。
mysql>SELECT FILE_ID, FILE_NAMEFROM INFORMATION_SCHEMA.FILESWHERE FILE_NAME LIKE '%.ibd%'ORDER BY FILE_ID; +---------+---------------------------------------+ | FILE_ID | FILE_NAME | +---------+---------------------------------------+ | 2 | ./mysql/plugin.ibd | | 3 | ./mysql/servers.ibd | | 4 | ./mysql/help_topic.ibd | | 5 | ./mysql/help_category.ibd | | 6 | ./mysql/help_relation.ibd | | 7 | ./mysql/help_keyword.ibd | | 8 | ./mysql/time_zone_name.ibd | | 9 | ./mysql/time_zone.ibd | | 10 | ./mysql/time_zone_transition.ibd | | 11 | ./mysql/time_zone_transition_type.ibd | | 12 | ./mysql/time_zone_leap_second.ibd | | 13 | ./mysql/innodb_table_stats.ibd | | 14 | ./mysql/innodb_index_stats.ibd | | 15 | ./mysql/slave_relay_log_info.ibd | | 16 | ./mysql/slave_master_info.ibd | | 17 | ./mysql/slave_worker_info.ibd | | 18 | ./mysql/gtid_executed.ibd | | 19 | ./mysql/server_cost.ibd | | 20 | ./mysql/engine_cost.ibd | | 21 | ./sys/sys_config.ibd | | 23 | ./test/t1.ibd | | 26 | /home/user/test/test/t2.ibd | +---------+---------------------------------------+
该查询检索FILE_ID
和FILE_NAME
对InnoDB
全局临时表空间。全局临时表空间文件名以前缀ibtmp
。
mysql>SELECT FILE_ID, FILE_NAMEFROM INFORMATION_SCHEMA.FILESWHERE FILE_NAME LIKE '%ibtmp%'; +--------- +----------- + | FILE_ID | FILE_NAME | +--------- +----------- + | 22 | ./ibtmp1 | +--------- +----------- +
同样,InnoDB
撤消表空间文件名以开头undo
。以下查询返回FILE_ID
和FILE_NAME
用于InnoDB
撤消表空间。
mysql>SELECT FILE_ID, FILE_NAMEFROM INFORMATION_SCHEMA.FILESWHERE FILE_NAME LIKE '%undo%';