在大的分类上: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.