在大的分類上:mysql schema包括存儲數據庫對象元數據的數據字典表和用於其他操作目的的系統表
數據字典表和系統表一般使用InnoDB存儲引擎
與之前的版本不同,數據字典表和系統表存儲在數據目錄下的一個名為mysql.idb的InnoDB表空間里
數據字典表
數據字典是在MySQL 8.0中添加的,一個啟用了數據字典的Server意味着相對於之前的版本有些常規操作有所不同
數據字典表不可見,不能通過SELECT語句、SHOW TABLES語句、以及在INFORMATION_SCHEMA.TABLES查看
在絕大部分情況下,這些數據字典表都有對應的INFORMATION_SCHEMA表可以查詢
從概念上講,INFORMATION_SCHEMA提供了一個視圖,MySQL通過該視圖公開數據字典元數據
• catalogs: Catalog information.
• character_sets: Information about available character sets.
• check_constraints: Information about CHECK constraints defined on tables.
• collations: Information about collations for each character set.
• column_statistics: Histogram statistics for column values.
• column_type_elements: Information about types used by columns.
• columns: Information about columns in tables.
• dd_properties: A table that identifies data dictionary properties, such as its version. The server uses this to determine whether the data dictionary must be upgraded to a newer version.
• events: Information about Event Scheduler events. The server loads events listed in this table during its startup sequence, unless started with the --skipgrant-tables option.
• foreign_keys, foreign_key_column_usage: Information about foreign keys.
• index_column_usage: Information about columns used by indexes.
• index_partitions: Information about partitions used by indexes.
• index_stats: Used to store dynamic index statistics generated when ANALYZE TABLE is executed.
• indexes: Information about table indexes.
• innodb_ddl_log: Stores DDL logs for crash-safe DDL operations.
• parameter_type_elements: Information about stored procedure and function parameters, and about return values for stored functions.
• parameters: Information about stored procedures and functions.
• resource_groups: Information about resource groups.
• routines: Information about stored procedures and functions.
• schemata: Information about schemata. In MySQL, a schema is a database, so this table provides information about databases.
• st_spatial_reference_systems: Information about available spatial reference systems for spatial data.
• table_partition_values: Information about values used by table partitions.
• table_partitions: Information about partitions used by tables.
• table_stats: Information about dynamic table statistics generated when ANALYZE TABLE is executed.
• tables: Information about tables in databases.
• tablespace_files: Information about files used by tablespaces.
• tablespaces: Information about active tablespaces.
• triggers: Information about triggers.
• view_routine_usage: Information about dependencies between views and stored functions used by them.
• view_table_usage: Used to track dependencies between views and their underlying tables.
授權系統表
授權系統表之前使用的是Myisam存儲引擎,現在使用的是InnoDB存儲引擎,這樣可以保證授權相關語句的事務一致性
• user: User accounts, global privileges, and other nonprivilege columns.
• global_grants: Assignments of dynamic global privileges to users; see Static Versus Dynamic Privileges.
• db: Database-level privileges.
• tables_priv: Table-level privileges.
• columns_priv: Column-level privileges.
• procs_priv: Stored procedure and function privileges.
• proxies_priv: Proxy-user privileges.
• default_roles: This table lists default roles to be activated after a user connects and authenticates, or executes SET ROLE DEFAULT.
• role_edges: This table lists edges for role subgraphs.
A given user table row might refer to a user account or a role. The server can distinquish whether a row represents a user account, a role, or both by consulting the role_edges table for information about relations between authentication IDs.
• password_history: Information about password changes.
對象信息系統表
對象信息系統表包括:存儲程序、組件、用戶定義函數以及插件信息
• component: The registry for server components. Any components listed in this table are installed by a loader service during the server startup sequence.
• func: Information about user-defined functions (UDFs). The server loads UDFs listed in this table during its startup sequence, unless started with the --skip-grant-tables option.
• plugin: Information about server-side plugins. The server loads plugins listed in this table during its startup sequence, unless started with the --skip-grant-tables option.
日志系統表
MySQL Server為日志提供了2個系統表
• general_log: The general query log table.
• slow_log: The slow query log table.
日志表使用CSV存儲引擎
服務器端幫助系統表
下面這些系統表包含服務器端幫助信息:
• help_category: Information about help categories.
• help_keyword: Keywords associated with help topics.
• help_relation: Mappings between help keywords and topics.
• help_topic: Help topic contents.
時區系統表
下面這些系統表包含時區信息:
• time_zone: Time zone IDs and whether they use leap seconds.
• time_zone_leap_second: When leap seconds occur.
• time_zone_name: Mappings between time zone IDs and names.
• time_zone_transition, time_zone_transition_type: Time zone descriptions.
復制系統表
MySQL Server使用下面的系統表支持復制功能:
• gtid_executed: Table for storing GTID values.
• ndb_binlog_index: Binary log information for NDB Cluster replication. This table is created only if the server is built with NDBCLUSTER support.
• slave_master_info, slave_relay_log_info, slave_worker_info: Used to store replication information on slave servers.
所有這些表都使用InnoDB存儲引擎
優化器系統表
優化器使用下面這些系統表:
• innodb_index_stats, innodb_table_stats: Used for InnoDB persistent optimizer statistics.
• server_cost, engine_cost: The optimizer cost model uses tables that contain cost estimate information about operations that occur during query execution. server_cost contains optimizer cost estimates for general server operations. engine_cost contains estimates for operations specific to particular storage engines.
雜項系統表
其他系統表不適合之前的分類:
• audit_log_filter, audit_log_user: If MySQL Enterprise Audit is installed, these tables provide persistent storage of audit log filter definitions and user accounts.
• firewall_users, firewall_whitelist: If MySQL Enterprise Firewall is installed, these tables provide persistent storage for information used by the firewall.
• servers: Used by the FEDERATED storage engine.
• innodb_dynamic_metadata: Used by the InnoDB storage engine to store fast-changing table metadata such as auto-increment counter values and index tree corruption flags. Replaces the data dictionary buffer table that resided in the InnoDB system tablespace.
