Documentation Home
MySQL 8.0 参考手册  / 第 15 章 InnoDB 存储引擎  / 15.15 InnoDB INFORMATION_SCHEMA 表  /  14.16.8 从 INFORMATION_SCHEMA.FILES 检索 InnoDB 表空间元数据

14.16.8 从 INFORMATION_SCHEMA.FILES 检索 InnoDB 表空间元数据

INFORMATION_SCHEMA.FILES表提供有关所有InnoDB表空间类型的元数据,包括file-per-table 表空间通用表空间系统表空间临时表表空间撤消表空间(如果存在)。

本节提供InnoDB特定用法示例。INFORMATION_SCHEMA.FILES有关该表 提供的数据的更多信息 ,请参阅第 24.3.9 节,“INFORMATION_SCHEMA FILES 表”

笔记

INNODB_SYS_TABLESPACESINNODB_SYS_DATAFILES表还提供有关表空间的元数据 ,InnoDB但数据仅限于 file-per-table 和通用表空间。

此查询从与表空间相关的表字段中 检索有关InnoDB 系统表空间的 元数据。 不相关的字段总是返回 NULL,并从查询中排除。 INFORMATION_SCHEMA.FILESInnoDBINFORMATION_SCHEMA.FILESInnoDB

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.FILES WHERE 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-per-table 和通用表空间的FILE_ID(相当于空间 ID)和FILE_NAME(包括路径信息) 。InnoDBFile-per-table 和 general 表空间有一个 .ibd文件扩展名。

mysql> SELECT FILE_ID, FILE_NAME FROM INFORMATION_SCHEMA.FILES
       WHERE 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_IDFILE_NAMEInnoDB临时表空间文件名以ibtmp.

mysql> SELECT FILE_ID, FILE_NAME FROM INFORMATION_SCHEMA.FILES
       WHERE FILE_NAME LIKE '%ibtmp%';
+---------+-----------+
| FILE_ID | FILE_NAME |
+---------+-----------+
|      22 | ./ibtmp1  |
+---------+-----------+

同样,InnoDB撤消表空间文件名以 . 为前缀undo。如果配置了单独的撤消表空间, 以下查询将返回FILE_IDFILE_NAME用于撤消表空间。InnoDB

mysql> SELECT FILE_ID, FILE_NAME FROM INFORMATION_SCHEMA.FILES
       WHERE FILE_NAME LIKE '%undo%';