MySQL 默认数据库有几个?探究 Mysql 数据库的默认配置

MySQL 默认数据库通常包括 information_schema, mysql, performance_schema, 和 sys

MySQL 默认数据库介绍

MySQL 安装后会自动创建几个默认数据库,这些数据库为信息架构、性能监控、系统管理等提供了丰富的功能,以下是对每个默认数据库的详细介绍:

MySQL 默认数据库有几个?探究 Mysql 数据库的默认配置

information_schema

information_schema 是一个信息数据库,主要用于存储关于 MySQL 服务器所维护的所有其他数据库的信息,这个数据库包含了关于数据库的元数据,如数据库名、数据库的表、表栏的数据类型与访问权限等,每当在 MySQL 中创建一个新的数据库,或者在已有的数据库中增删改表,相关的信息都会被记录在information_schema 库中。

表名 描述
TABLES 提供了关于数据库中的表的信息(包括视图),详细表述了某个表属于哪个 schema,表类型,表引擎,创建时间等信息,show tables from schemaname 的结果取之此表。
COLUMNS 提供了表中的列信息,详细表述了某张表的所有列以及每个列的信息,show columns from schemaname.tablename 的结果取之此表。
STATISTICS 提供了关于表索引的信息,show index from schemaname.tablename 的结果取之此表。
USER_PRIVILEGES 给出了关于全程权限的信息,该信息源自mysql.user 授权表(非标准表)。
SCHEMA_PRIVILEGES 给出了关于方案(数据库)权限的信息,该信息来自mysql.db 授权表(非标准表)。
TABLE_PRIVILEGES 给出了关于表权限的信息,该信息源自mysql.tables_priv 授权表(非标准表)。
COLUMN_PRIVILEGES 给出了关于列权限的信息,该信息源自mysql.columns_priv 授权表(非标准表)。
CHARACTER_SETS 提供了 MySQL 实例可用字符集的信息,SHOW CHARACTER SET 结果集取之此表。
COLLATIONS 提供了关于各字符集的对照信息。
COLLATION_CHARACTER_SET_APPLICABILITY 指明了可用于校对的字符集,这些列等效于SHOW COLLATION 的前两个显示字段。
TABLE_CONSTRAINTS 描述了存在约束的表,以及表的约束类型。
KEY_COLUMN_USAGE 描述了具有约束的键列。
ROUTINES 提供了关于存储子程序(存储程序和函数)的信息,ROUTINES 表不包含自定义函数(UDF),名为mysql.proc name 的列指明了对应于INFORMATION_SCHEMA.ROUTINES 表的mysql.proc 表列。
VIEWS 给出了关于数据库中的视图的信息,需要有show views 权限,否则无法查看视图信息。
TRIGGERS 提供了关于触发程序的信息,必须有super 权限才能查看该表。

performance_schema

performance_schema 主要用于监控 MySQL 服务器的性能参数,它提供了大量的表和视图,用于收集各种性能指标,如服务器执行的状态、锁定等待时间、线程缓存的使用情况等,通过查询performance_schema 中的数据,可以帮助数据库管理员深入了解服务器的性能状况,及时发现并解决潜在的性能问题。

sys

sys 数据库是一个包含了一系列视图、存储过程和函数的特殊数据库,用于帮助数据库管理员更好地管理和维护 MySQL 服务器,它提供了一些实用的工具和功能,如性能模式、用户管理和系统参数管理,通过sys 数据库,管理员可以方便地查看服务器的状态、监控性能指标、优化查询等。

mysql

MySQL 默认数据库有几个?探究 Mysql 数据库的默认配置

mysql 是 MySQL 服务器的默认数据库,它包含了关于 MySQL 服务器的系统表和元数据,这些系统表包括用户权限信息、系统变量设置以及各种内部管理相关的表,通过mysql 数据库,可以对 MySQL 服务器进行全面的配置和管理,包括用户管理、权限分配和数据备份等操作。

从 MySQL 8.0 开始,mysql 系统表和数据字典表使用 InnoDB 存储引擎,存储在 MySQL 数据目录下的mysql.ibd 表空间文件中,在 MySQL 5.7 之前,这些系统表使用 MyISAM 存储引擎,存储在mysql 数据库文件目录下各自的表空间文件中,为了便于理解和使用,mysql 系统数据库中的表可以分为多种类别,下面我们分别进行介绍。

数据字典表

这些表构成了 MySQL 的数据字典,也就是关于数据库对象的元数据,数据字典表对于用户而言是不可见的,不能使用SELECT 进行查询,也不会出现在SHOW TABLES 或者INFORMATION_SCHEMA.TABLES 表中,不过,大多数表可以通过INFORMATION_SCHEMA 数据库中相应的视图进行查询。

我们不能直接查询mysql.tables 表:

mysql> select * from mysql.tables;
ERROR 3554 (HY000): Access to data dictionary table 'mysql.tables' is rejected.

不过,可以通过INFORMATION_SCHEMA.TABLES 查询数据库中的表:

mysql> select * from information_schema.tables;

MySQL 8.0 包括以下数据字典表:

MySQL 默认数据库有几个?探究 Mysql 数据库的默认配置

表名 描述
catalogs 系统目录(Catalog)信息。
character_sets 系统支持的字符集。
check_constraints CHECK 约束信息。
collations 字符集支持的排序规则。
column_statistics 字段的直方图统计信息。
column_type_elements 字段的数据类型信息。
columns 表中的字段信息。
dd_properties 存储数据字典的属性,例如版本,服务器利用这些信息决定是否需要升级数据字典。
events 事件调度器中的事件信息。
foreign_keys 外键相关的信息。
foreign_key_column_usage 外键列的使用情况。
index_column_usage 索引字段信息。
index_partitions 索引分区信息。
index_stats ANALYZE TABLE 命令生成的动态索引统计。
indexes 表中的索引信息。
innodb_ddl_log 支持原子 DDL 操作的日志。
parameter_type_elements 存储过程和函数的参数信息,以及存储函数的返回值类型
parameters 关于存储过程和函数的信息。
resource_groups 关于资源组的信息。
routines 关于存储过程和函数的信息。
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 视图和基表之间的依赖关系。

从 MySQL 8.0 开始,一些information_schema 数据字典表取代了之前的系统表,这些系统表不再存在于mysql 系统数据库中:

data_dictionary 数据字典表events 取代了之前的 event 系统表。

data_dictionary 数据字典表parametersroutines 共同取代了之前的 system table。

MySQL 安装后的默认数据库提供了丰富的功能和工具,用于帮助数据库管理员更好地管理和维护 MySQL 服务器,通过了解这些默认数据库的作用以及各个表所存储的数据含义,可以更好地利用这些工具和功能来提高服务器的性能和可靠性。

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

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希的头像未希新媒体运营
上一篇 2024-10-26 01:01
下一篇 2024-10-26 01:10

相关推荐

发表回复

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

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