MySQL 8.4 版本注意事項
資訊綱要 FILES
資料表提供關於所有 InnoDB
表空間類型的元數據,包括每個資料表的表空間、一般表空間、系統表空間、暫存資料表表空間和復原表空間 (如果存在)。
本節提供 InnoDB
特定的使用範例。有關資訊綱要 FILES
資料表提供的資料的更多資訊,請參閱第 28.3.15 節,「INFORMATION_SCHEMA FILES 資料表」。
注意
INNODB_TABLESPACES
和 INNODB_DATAFILES
資料表也提供關於 InnoDB
表空間的元數據,但資料僅限於每個資料表、一般和復原表空間。
此查詢從資訊綱要 FILES
資料表中與 InnoDB
表空間相關的欄位,檢索關於 InnoDB
系統表空間的元數據。與 InnoDB
不相關的 FILES
欄位總是返回 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
此查詢檢索 FILE_ID
(相當於空間 ID) 和 FILE_NAME
(包括路徑資訊),用於 InnoDB
每個資料表的表空間和一般表空間。每個資料表的表空間和一般表空間具有 .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_ID
和 FILE_NAME
,用於 InnoDB
全域暫存表空間。全域暫存表空間檔案名稱以 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_ID
和 FILE_NAME
,用於 InnoDB
復原表空間。
mysql> SELECT FILE_ID, FILE_NAME FROM INFORMATION_SCHEMA.FILES
WHERE FILE_NAME LIKE '%undo%';