文件首頁
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 參考手冊  /  MySQL 伺服器管理  /  mysql 系統綱要

7.3 mysql 系統綱要

mysql 綱要是系統綱要。它包含 MySQL 伺服器執行時所需的資訊表格。大致分類來說,mysql 綱要包含儲存資料庫物件中繼資料的資料字典表格,以及用於其他操作用途的系統表格。以下討論會將系統表格集進一步細分為較小的類別。

本節的其餘部分會列舉每個類別中的表格,並提供額外資訊的交叉參考。除非另有說明,資料字典表格和系統表格會使用 InnoDB 儲存引擎。

mysql 系統表格和資料字典表格位於名為 mysql.ibd 的單一 InnoDB 表空間檔案中,該檔案位於 MySQL 資料目錄中。先前,這些表格是在 mysql 資料庫目錄中的個別表空間檔案中建立的。

可以為 mysql 系統綱要表空間啟用靜態資料加密。如需詳細資訊,請參閱第 17.13 節,〈InnoDB 靜態資料加密〉

資料字典表格

這些表格構成資料字典,其中包含有關資料庫物件的中繼資料。如需其他資訊,請參閱第 16 章,MySQL 資料字典

  • catalogs:目錄資訊。

  • character_sets:關於可用字元集的資訊。

  • check_constraints:關於資料表上定義的 CHECK 限制式的資訊。請參閱第 15.1.20.6 節,〈CHECK 限制式〉

  • collations:每個字元集的定序資訊。

  • column_statistics:欄值長條圖統計資訊。請參閱第 10.9.6 節,〈最佳化工具統計資訊〉

  • column_type_elements:關於欄位使用的類型的資訊。

  • columns:關於資料表中欄位的資訊。

  • dd_properties:一個識別資料字典屬性(例如其版本)的表格。伺服器會使用此資料判斷是否必須將資料字典升級至較新版本。

  • events:關於事件排程器事件的資訊。請參閱第 27.5 節,〈使用事件排程器〉。如果啟動伺服器時使用 --skip-grant-tables 選項,則會停用事件排程器,且表格中註冊的事件不會執行。請參閱第 27.5.2 節,〈事件排程器設定〉

  • foreign_keysforeign_key_column_usage:關於外鍵的資訊。

  • index_column_usage:關於索引使用的欄位的資訊。

  • index_partitions:關於索引使用的分割的資訊。

  • index_stats:用於儲存執行 ANALYZE TABLE 時產生的動態索引統計資訊。

  • indexes:關於資料表索引的資訊。

  • innodb_ddl_log:儲存當機安全 DDL 作業的 DDL 日誌。

  • parameter_type_elements:關於預存程序和函式參數,以及預存函式的傳回值的資訊。

  • parameters:關於預存程序和函式的資訊。請參閱第 27.2 節,〈使用預存常式〉

  • resource_groups:關於資源群組的資訊。請參閱第 7.1.16 節,〈資源群組〉

  • routines:有關預存程序和函式的資訊。請參閱第 27.2 節,「使用預存程序」

  • schemata:有關綱要的資訊。在 MySQL 中,綱要即為資料庫,因此此表提供有關資料庫的資訊。

  • st_spatial_reference_systems:有關空間資料可用空間參考系統的資訊。

  • table_partition_values:有關表格分割區所使用值的資訊。

  • table_partitions:有關表格所使用分割區的資訊。

  • table_stats:有關執行 ANALYZE TABLE 時產生的動態表格統計資訊。

  • tables:有關資料庫中表格的資訊。

  • tablespace_files:有關表格空間所使用檔案的資訊。

  • tablespaces:有關作用中表格空間的資訊。

  • triggers:有關觸發程序的資訊。

  • view_routine_usage:有關檢視表及其所使用的預存函式之間相依性的資訊。

  • view_table_usage:用於追蹤檢視表及其基礎表格之間的相依性。

資料字典表是不可見的。它們無法使用 SELECT 讀取,不會出現在 SHOW TABLES 的輸出中,也不會列在 INFORMATION_SCHEMA.TABLES 表格中等等。不過,在大多數情況下,都有對應的 INFORMATION_SCHEMA 表格可以查詢。從概念上來說,INFORMATION_SCHEMA 提供了一個視圖,MySQL 通過這個視圖公開資料字典中繼資料。例如,您無法直接從 mysql.schemata 表格中選取資料。

mysql> SELECT * FROM mysql.schemata;
ERROR 3554 (HY000): Access to data dictionary table 'mysql.schemata' is rejected.

相反地,請從對應的 INFORMATION_SCHEMA 表格中選取該資訊。

mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA\G
*************************** 1. row ***************************
              CATALOG_NAME: def
               SCHEMA_NAME: mysql
DEFAULT_CHARACTER_SET_NAME: utf8mb4
    DEFAULT_COLLATION_NAME: utf8mb4_0900_ai_ci
                  SQL_PATH: NULL
        DEFAULT_ENCRYPTION: NO
*************************** 2. row ***************************
              CATALOG_NAME: def
               SCHEMA_NAME: information_schema
DEFAULT_CHARACTER_SET_NAME: utf8mb3
    DEFAULT_COLLATION_NAME: utf8mb3_general_ci
                  SQL_PATH: NULL
        DEFAULT_ENCRYPTION: NO
*************************** 3. row ***************************
              CATALOG_NAME: def
               SCHEMA_NAME: performance_schema
DEFAULT_CHARACTER_SET_NAME: utf8mb4
    DEFAULT_COLLATION_NAME: utf8mb4_0900_ai_ci
                  SQL_PATH: NULL
        DEFAULT_ENCRYPTION: NO
...

沒有與 mysql.indexes 完全對應的資訊綱要表格,但是 INFORMATION_SCHEMA.STATISTICS 包含許多相同的資訊。

目前,沒有與 mysql.foreign_keysmysql.foreign_key_column_usage 完全對應的 INFORMATION_SCHEMA 表格。取得外來索引鍵資訊的標準 SQL 方式是使用 INFORMATION_SCHEMAREFERENTIAL_CONSTRAINTSKEY_COLUMN_USAGE 表格;這些表格現在實作為 foreign_keysforeign_key_column_usage 和其他資料字典表格的檢視表。

授權系統表格

這些系統表格包含有關使用者帳戶及其所持有權限的授權資訊。有關這些表格的結構、內容和用途的其他資訊,請參閱第 8.2.3 節,「授權表格」

MySQL 9.0 授權表格是 InnoDB(交易式)表格。帳戶管理陳述式是交易式的,如果發生任何錯誤,則會針對所有指定的用戶成功或回復且沒有任何影響。

  • user:使用者帳戶、全域權限和其他非權限欄位。

  • global_grants:將動態全域權限指派給使用者;請參閱靜態與動態權限

  • db:資料庫層級權限。

  • tables_priv:表格層級權限。

  • columns_priv:欄位層級權限。

  • procs_priv:預存程序和函式權限。

  • proxies_priv:Proxy 使用者權限。

  • default_roles:此表格列出使用者連線和驗證後或執行 SET ROLE DEFAULT 後要啟用的預設角色。

  • role_edges:此表格列出角色子圖的邊緣。

    指定的 user 表格列可能參照使用者帳戶或角色。伺服器可以藉由查閱 role_edges 表格,取得驗證 ID 之間關係的相關資訊,來區分列是否代表使用者帳戶、角色或兩者。

  • password_history:有關密碼變更的資訊。

物件資訊系統表格

這些系統表格包含有關元件、可載入函式和伺服器端外掛程式的資訊。

記錄系統表格

伺服器會使用這些系統表格進行記錄

  • general_log:一般查詢記錄表格。

  • slow_log:慢速查詢記錄表格。

記錄表格使用 CSV 儲存引擎。

如需更多資訊,請參閱第 7.4 節,「MySQL 伺服器記錄」

伺服器端說明系統表格

這些系統表格包含伺服器端說明資訊

  • help_category:有關說明類別的資訊。

  • help_keyword:與說明主題相關聯的關鍵字。

  • help_relation:說明關鍵字和主題之間的對應。

  • help_topic:說明主題內容。

如需更多資訊,請參閱第 7.1.17 節,「伺服器端說明支援」

時區系統表格

這些系統表格包含時區資訊

  • time_zone:時區 ID 以及它們是否使用閏秒。

  • time_zone_leap_second:閏秒何時發生。

  • time_zone_name:時區 ID 和名稱之間的對應。

  • time_zone_transitiontime_zone_transition_type:時區描述。

如需更多資訊,請參閱第 7.1.15 節,「MySQL 伺服器時區支援」

複寫系統表格

伺服器會使用這些系統表格來支援複寫

剛列出的所有表格都使用 InnoDB 儲存引擎。

最佳化工具系統表格

這些系統表格供最佳化工具使用

雜項系統資料表

其他系統資料表不屬於上述類別

  • audit_log_filteraudit_log_user:如果已安裝 MySQL Enterprise Audit,這些資料表會提供稽核日誌篩選定義和使用者帳戶的持久性儲存。請參閱稽核日誌資料表

  • firewall_group_allowlistfirewall_groupsfirewall_memebershipfirewall_usersfirewall_whitelist:如果已安裝 MySQL Enterprise Firewall,這些資料表會提供防火牆所使用資訊的持久性儲存。請參閱第 8.4.7 節「MySQL Enterprise Firewall」

  • servers:由 FEDERATED 儲存引擎使用。請參閱第 18.8.2.2 節「使用 CREATE SERVER 建立 FEDERATED 資料表」

  • innodb_dynamic_metadata:由 InnoDB 儲存引擎使用,以儲存快速變更的資料表中繼資料,例如自動遞增計數器值和索引樹狀結構損毀旗標。取代位於 InnoDB 系統表格空間中的資料字典緩衝區資料表。