mysql 系统模式

mysql

mysql 模式是系统模式。此模式下的表存储了 MySQL 服务器运行时所需的信息。

mysql 系统表和数据字典表位于数据目录中名为 mysql.ibd 的单个 InnoDB 表空间文件中。

这些表中,只有系统日志表 (包括常规日志表和慢查询日志表) 是 CSV 存储引擎,其他表都使用 InnoDB。

数据字典表表 (Data Dictionary Tables)

这些表包含数据字典 (8.0 版本新增功能) ,其中记录了有关数据库对象的元数据。

数据字典表是不可见的。 它们不能用 SELECT 读取,不出现在 SHOW TABLES 的输出中,也没有在INFORMATION_SCHEMA.TABLES 表中列出。

可以查询相应的 INFORMATION_SCHEMA 表。 从概念上讲,INFORMATION_SCHEMA 提供了一个视图,MySQL 通过该视图公开数据字典元数据。

字符集和排序规则

  • character_sets
    • 可用字符集的信息。
  • collations
    • 每个字符集的排序规则

  • column_statistics
    • 列的统计信息
  • column_type_elements
    • 列的使用类型信息
    • 没有对应的 INFORMATION_SCHEMA 表
  • columns
    • 表中列的信息

事件

  • events
    • 有关计划事件的信息

约束

  • check_constraints
    • 有关在表上定义的 CHECK 约束的信息。
  • foreign_keys, foreign_key_column_usage
    • 外键信息
    • 没有与这两个表完全对应的 INFORMATION_SCHEMA 表。
    • 获取外键信息的标准 SQL 方法是使用 INFORMATION_SCHEMA 下的这两张表
      • REFERENTIAL_CONSTRAINTS
      • KEY_COLUMN_USAGE

索引

  • index_column_usage
    • 索引使用的列信息
  • index_partitions
    • 索引使用的分区信息
  • index_stats
    • 用于存储执行 ANALYZE TABLE 时生成的动态索引统计信息。
  • indexes
    • 表的索引信息
    • 没有与之完全对应的 INFORMATION_SCHEMA 表,但是 INFORMATION_SCHEMA.STATISTICS 包含了相同信息

存储过程和函数

  • routines
    • 存储过程和函数的信息
  • parameter_type_elements
    • 有关存储过程和函数参数的信息,以及有关存储函数的返回值的信息。
    • 没有对应的 INFORMATION_SCHEMA 表
  • parameters
    • 有关存储过程和函数的信息

数据库

  • schemata
    • schema (数据库) 信息

表分区

  • table_partition_values
    • 有关表分区使用的值的信息。
  • table_partitions
    • 有关表使用的分区的信息

  • table_stats
    • 有关执行 ANALYZE TABLE 时生成的动态表统计信息。
    • 没有对应的 INFORMATION_SCHEMA 表
      • 应该查询 statistics 表
  • tables
    • 数据库中表的信息

表空间

  • tablespace_files
    • 有关表空间使用的文件的信息。
    • 没有对应的 INFORMATION_SCHEMA 表
      • 应该查询 files 表
  • tablespaces
    • 有关活动表空间的信息

视图

  • view_routine_usage
    • 有关视图与其使用的存储函数之间的依赖关系的信息。
  • view_table_usage
    • 用于跟踪视图及其基础表之间的依赖关系。

其他

  • catalogs
    • 目录信息
    • 没有对应的 INFORMATION_SCHEMA 表
  • dd_properties
    • 标识数据字典属性 (例如其版本) 的表。
    • 服务器使用它来确定是否需要升级数据字典版本。
    • 没有对应的 INFORMATION_SCHEMA 表
  • innodb_ddl_log
    • 存储 DDL 日志以进行安全崩溃的 DDL 操作。
    • 没有对应的 INFORMATION_SCHEMA 表
  • resource_groups
    • 资源组信息
  • st_spatial_reference_systems
    • 关于空间数据的可用空间参考系统的信息

授权系统表 (Grant System Tables)

这些系统表包含有关用户帐户及其所拥有权限的授权信息。

8.0 版本中,授权表由 MyISAM 表变为 InnoDB 表。

user

  • 用户帐户,全局权限和其他非权限列

global_grants

  • 向用户分配动态全局权限
    mysql> select * from global_grants limit 10;
    +------------------+------------+----------------------------+-------------------+
    | USER             | HOST       | PRIV                       | WITH_GRANT_OPTION |
    +------------------+------------+----------------------------+-------------------+
    | mysql.infoschema | localhost  | SYSTEM_USER                | N                 |
    | mysql.session    | localhost  | BACKUP_ADMIN               | N                 |
    | mysql.session    | localhost  | CLONE_ADMIN                | N                 |
    | mysql.session    | localhost  | CONNECTION_ADMIN           | N                 |
    | mysql.session    | localhost  | PERSIST_RO_VARIABLES_ADMIN | N                 |
    | mysql.session    | localhost  | SESSION_VARIABLES_ADMIN    | N                 |
    | mysql.session    | localhost  | SYSTEM_USER                | N                 |
    | mysql.session    | localhost  | SYSTEM_VARIABLES_ADMIN     | N                 |
    | mysql.sys        | localhost  | SYSTEM_USER                | N                 |
    | repl             | 172.16.0.% | BACKUP_ADMIN               | N                 |
    +------------------+------------+----------------------------+-------------------+
    

db

  • 数据库级权限

table_priv

  • 表级权限

columns_priv

  • 列级权限

procs_priv

  • 存储过程和函数权限

proxies_priv

  • 代理用户权限

default_roles

  • 此表列出了在用户连接和认证或执行 SET ROLE DEFAULT 之后要激活的默认角色

role_edges

  • 角色边界
    mysql> select * from role_edges;
    +-----------+---------------+-----------+---------+-------------------+
    | FROM_HOST | FROM_USER     | TO_HOST   | TO_USER | WITH_ADMIN_OPTION |
    +-----------+---------------+-----------+---------+-------------------+
    | %         | app_developer | localhost | dev1    | N                 |
    +-----------+---------------+-----------+---------+-------------------+
    

password_history

  • 有关密码更改的信息
    mysql> select * from password_history\G
    *************************** 1. row ***************************
                  Host: 172.16.0.%
                  User: repl
    Password_timestamp: 2021-03-29 10:24:50.607247
              Password: A005$!'lY8}%b[M5r8
    

对象信息系统表 (Object Information System Tables)

这些系统表都是注册表,包含有关存储程序,用户定义函数和服务器端插件的信息。

component

  • 使用 INSTALL COMPONENT 安装的服务器组件的注册表。
    mysql> select * from component;
    +--------------+--------------------+---------------------------------------+
    | component_id | component_group_id | component_urn                         |
    +--------------+--------------------+---------------------------------------+
    |            2 |                  2 | file://component_log_sink_json        |
    |            3 |                  3 | file://component_log_sink_syseventlog |
    |            4 |                  4 | file://component_log_filter_dragnet   |
    +--------------+--------------------+---------------------------------------+
    
  • 该表中列出的所有组件在服务器启动过程中均由加载程序安装。

func

  • 使用 CREATE FUNCTION 安装的用户定义函数 (UDF) 注册表
  • 如果使用 –skip-grant-tables 选项启动服务器,则表中注册的 UDF 不会被加载并且不可用
  • 查看性能表

    • performance_schema.user_defined_functions

plugin

  • 使用 INSTALL PLUGIN 安装的服务器端插件的注册表。
  • 使用 InnoDB 存储引擎

event

8.0 版本中,已被数据字典表 events 取代。

  • 使用 CREATE EVENT 安装的 Event Scheduler 事件的注册表

proc

8.0 版本中,已被数据字典表 parameters 和 routines 取代。

  • 有关存储过程和功能的信息

日志系统表 (Log System Tables)

用于记录日志,使用 CSV 存储引擎。

general_log

  • 常规日志表

slow_log

  • 慢查询日志表

服务器端帮助系统表 (Server-Side Help System Tables)

包含服务端的帮助信息,使用 InnoDB 存储引擎。

help_category

  • 有关帮助类别的信息

help_keyword

  • 与帮助主题相关的关键字

help_relation

  • 帮助关键字和主题之间的映射

help_topic

  • 帮助主题的内容

时区系统表 (Time Zone System Tables)

包含时区信息,使用 InnoDB 存储引擎。

time_zone

  • 时区 ID,以及它们是否使用跳秒 (leap)

time_zone_leap_second

  • 发生跳秒 (leap) 时的记录

time_zone_name

  • 时区 ID 和名称之间的映射

时区描述

  • time_zone_transition
  • time_zone_transition_type

复制系统表 (Replication System Tables)

用来支持复制,使用 InnoDB 存储引擎。

gtid_executed

  • 用于存储 GTID 的值

ndb_binlog_index

  • NDB 群集复制的二进制日志信息

复制元数据

用于在复制服务器上存储复制信息。

  • slave_master_info
  • slave_relay_log_info
  • slave_worker_info

优化器系统表 (Optimizer System Tables)

供优化器使用,使用 InnoDB 存储引擎。

统计信息

用于 InnoDB 持久保存优化器统计信息。

  • innodb_index_stats
  • innodb_table_stats

执行成本

优化器成本模型使用的表包含有关查询执行期间发生的操作的成本估算信息。

  • server_cost
  • engine_cost

杂项系统表 (Miscellaneous System Tables)

其它杂项,使用 InnoDB 存储引擎。

审计日志

如果已安装 MySQL Enterprise Audit ,则这些表将提供审计日志过滤器定义和用户帐户的永久存储。

  • audit_log_filter
  • audit_log_user

企业防火墙

如果安装了 MySQL 企业防火墙,则这些表为防火墙使用的信息提供永久存储。

  • firewall_group_allowlist
  • firewall_groups
  • firewall_memebership
  • firewall_users, firewall_whitelist

FEDERATED 存储引擎

供 FEDERATED 存储引擎使用。

  • servers

InnoDB 动态元数据

由 InnoDB 存储引擎用来存储快速变化的表元数据。例如,自动增量计数器值和索引树损坏标志。替换位于 InnoDB 系统表空间中的数据字典缓冲区表。

  • innodb_dynamic_metadata
  • 没有找到这张表
英仔
版权声明:本站原创文章,由 英仔 2021-05-17发表,共计5188字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)