文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  從 INFORMATION_SCHEMA.FILES 檢索 InnoDB 表空間元數據

17.15.8 從 INFORMATION_SCHEMA.FILES 檢索 InnoDB 表空間元數據

Information Schema FILES 表格提供關於所有 InnoDB 表空間類型的元數據,包括每個表格的表空間一般表空間系統表空間暫存表格表空間,以及復原表空間(如果有的話)。

本節提供 InnoDB 特定的使用範例。有關 Information Schema FILES 表格提供的資料的詳細資訊,請參閱第 28.3.15 節:「INFORMATION_SCHEMA FILES 表格」

注意

INNODB_TABLESPACESINNODB_DATAFILES 表格也提供關於 InnoDB 表空間的元數據,但資料僅限於每個表格的表空間、一般表空間和復原表空間。

此查詢從與 InnoDB 表空間相關的 Information Schema FILES 表格欄位中檢索關於 InnoDB 系統表空間的元數據。FILESInnoDB 不相關的資料行一律傳回 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.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

此查詢檢索 InnoDB 每個表格和一般表空間的 FILE_ID(相當於空間 ID)和 FILE_NAME(包括路徑資訊)。每個表格和一般表空間的檔案具有 .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           |
    +---------+---------------------------------------+

此查詢檢索 InnoDB 全域暫存表空間的 FILE_IDFILE_NAME。全域暫存表空間檔案名稱以 ibtmp 作為前綴。

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

同樣地,InnoDB 復原表空間檔案名稱以 undo 作為前綴。以下查詢會傳回 InnoDB 復原表空間的 FILE_IDFILE_NAME

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