MySQL系统表是什么?它们的作用和重要性如何?

MySQL的系统表包括mysql数据库中的信息,如用户、权限、数据库等配置信息。

MySQL 是一个流行的开源关系型数据库管理系统,它包含多个系统表用于存储和管理服务器运行所需的各种信息,以下是对MySQL系统表的详细介绍:

MySQL系统表是什么?它们的作用和重要性如何?

一、Information_schema数据库

1、SCHEMATA表:提供了当前MySQL实例中所有数据库的信息,是SHOW DATABASES命令的结果来源。

2、TABLES表:提供了关于数据库中的表的信息(包括视图),详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息,是SHOW TABLES FROM schemaname命令的结果来源。

3、COLUMNS表:提供了表中的列信息,详细表述了某张表的所有列以及每个列的信息,是SHOW COLUMNS FROM schemaname.tablename命令的结果来源。

4、STATISTICS表:提供了关于表索引的信息,是SHOW INDEX FROM schemaname.tablename命令的结果来源。

5、USER_PRIVILEGES表:给出了关于全程权限的信息,该信息源自mysql.user授权表,是非标准表。

6、SCHEMA_PRIVILEGES表:给出了关于方案(数据库)权限的信息,该信息来自mysql.db授权表,是非标准表。

7、TABLE_PRIVILEGES表:给出了关于表权限的信息,该信息源自mysql.tables_priv授权表,是非标准表。

8、COLUMN_PRIVILEGES表:给出了关于列权限的信息,该信息源自mysql.columns_priv授权表,是非标准表。

9、CHARACTER_SETS表:提供了MySQL实例可用字符集的信息,是SHOW CHARACTER SET命令的结果来源。

10、COLLATIONS表:提供了关于各字符集的对照信息。

11、COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集,这些列等效于SHOW COLLATION的前两个显示字段。

12、TABLE_CONSTRAINTS表:描述了存在约束的表以及表的约束类型。

13、KEY_COLUMN_USAGE表:描述了具有约束的键列。

14、ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息,ROUTINES表不包含自定义函数(UDF),名为mysql.proc name的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。

15、VIEWS表:给出了关于数据库中的视图的信息,需要有show views权限,否则无法查看视图信息。

MySQL系统表是什么?它们的作用和重要性如何?

16、TRIGGERS表:提供了关于触发程序的信息,必须有super权限才能查看该表。

二、mysql数据库

1、授权系统表

user表:控制用户是否能够连接,如果可以连接,则会指出此用户的权限信息,适用于实例上的所有数据库。

db表:范围列决定哪些用户可以访问哪些数据库从哪个主机,权限列决定允许的操作,在数据库级别授予的权限适用于数据库和数据库中的所有对象,如表和存储程序。

tables_priv表columns_priv表:控制的权限更细致,到了表级别和列级别。

procs_priv表:适用于存储例程(过程和函数),在常规级别授予的权限只适用于一个单一的过程或函数。

proxies_priv表:指出那个用户可以作为代理,或者是用户是否有权限给别的用户代理权限。

2、系统对象信息系统表

event表:每一次系统启动都会重新加载,除非指定skipgranttables参数启动。

func表:存放关于用户定义的方法。

plugin表:存放有关服务器插件的相关信息。

proc表:存放存储过程和方法的系统表。

3、日志系统表

general_log表:一般查询日志表。

slow_log表:慢查询日志表,这两张系统表可以将慢日志和日志按照表格的形式存储下来,但是相对来说带来对性能和存储空间的使用更大,一般生产环境我们都建议设置为外部文件。

4、服务器端辅助系统表

MySQL系统表是什么?它们的作用和重要性如何?

help_category表help_keyword表help_relation表help_topic表:这些表存储了MySQL帮助的基本信息,可以通过HELP +列来查看具体的帮助信息。

5、time zone系统表

time_zone表time_zone_leap_second表time_zone_name表time_zone_transition表time_zone_transition_type表:这些表包含了时区相关的信息。

6、复制相关系统表

gtid_executed表:存储了复制执行的GTID的信息。

ndb_binlog_index表slave_master_info表slave_relay_log_info表slave_worker_info表:只有当MySQL作为slave的时候才会存储相关信息。

7、optimizer相关系统表

innodb_index_stats表innodb_table_stats表:显示的是索引的信息。

server_cost表engine_cost表:优化器成本模型使用的表,包含查询期间发生操作的成本估算信息。

8、杂项系统表

如果安装了MySQL Enterprise Audit,则包含audit_log_filter表和audit_log_user表,存储审计日志过滤器定义和用户帐户。

如果安装了MySQL Enterprise Firewall,则包含firewall_group_allowlist表、firewall_groups表、firewall_memebership表、firewall_users表和firewall_whitelist表,这些存储表防火墙的使用信息。

servers表:由FEDERATED存储引擎使用。

innodb_dynamic_metadata表:由InnoDB存储引擎用来存储快速变化的表元数据,例如自动递增计数器值和索引树损坏标志。

MySQL的系统表涵盖了从数据库元数据管理到用户权限控制、日志记录、服务器辅助功能等多个方面,为数据库管理员和开发者提供了丰富的信息和工具来管理和优化MySQL服务器的运行。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1237268.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-25 00:57
下一篇 2023-11-20 22:43

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入