文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  MySQL 伺服器管理  /  mysql 系統綱要

7.3 mysql 系統綱要

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

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

mysql 系統表格和資料字典表格位於 MySQL 資料目錄中名為 mysql.ibd 的單一 InnoDB 表空間檔案中。先前,這些表格是在 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.4 節,「使用事件排程器」。如果伺服器在啟動時帶有 --skip-grant-tables 選項,則會停用事件排程器,且表格中註冊的事件不會執行。請參閱 第 27.4.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 表格,但 INFORMATION_SCHEMA.STATISTICS 包含許多相同的資訊。

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

授權系統表格

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

MySQL 8.4 授權表格是 InnoDB(交易式)表格。帳戶管理陳述式是交易式的,如果發生任何錯誤,它們會對所有指定使用者成功,或回滾且無效。

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

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

  • db:資料庫層級的權限。

  • tables_priv:表格層級的權限。

  • columns_priv:欄位層級的權限。

  • procs_priv:儲存程序和函數的權限。

  • proxies_priv:代理使用者權限。

  • 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_filter, audit_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 系統表格空間中的資料字典緩衝區表格。