MySQL四个自带的数据库为mysql、information_schema、performance_schema、sys。
mysql
https://dev.mysql.com/doc/refman/8.0/en/system-schema.html
- 它包含存储MySQL服务器运行时所需信息的表。广义的分类是,mysql数据库包含存储数据库对象元数据的数据字典表,以及用于其他操作目的的系统表。具体包括:
- 数据字典表(Data Dictionary Tables):包括character_sets、collations、columns、events、foreign_keys、indexes、parameters、tables、triggers等。这些表包含数据字典,其中包含有关数据库对象的元数据。数据字典表是不可见的。它们不能用SELECT读取,不在SHOW TABLES的输出中出现,不在INFORMATION_SCHEMA.TABLES表中列出。但在大多数情况下,可以查询对应的information_schema表。从概念上讲,information_schema提供了一个视图,MySQL通过该视图公开数据字典元数据。
- 授权系统表(Grant System Tables):包括user、db、tables_priv、columns_priv、procs_priv等。其中包含有关用户帐户及其所拥有权限的信息。
- 对象信息系统表(Object Information System Tables):包含组件、可加载函数和服务器端插件的信息。
- 日志系统表(Log System Tables):包括通用查询日志表(general_log)和慢查询日志表(slow_log)。
- 服务器端帮助系统表(Server-Side Help System Tables):这些系统表包含服务器端帮助信息。
- 时区系统表(Time Zone System Tables):这些系统表包含时区信息。
- 复制系统表(Replication System Tables):包括ndb_binlog_index、slave_master_info、slave_relay_log_info、slave_worker_info等。服务器使用这些系统表来支持复制。
- 优化器系统表(Optimizer System Tables):包括innodb_index_stats、innodb_table_stats、server_cost、engine_cost。这些系统表供优化器使用。
- 杂项系统表(Miscellaneous System Tables):包括firewall_group_allowlist、innodb_dynamic_metadata等。其中记录了自增计数器的值。
information_schema
https://dev.mysql.com/doc/refman/8.0/en/information-schema.html
- information_schema提供对数据库元数据、有关MySQL服务器的信息(例如数据库或表的名称、列的数据类型或访问权限)的访问。有时用于此信息的其他术语是数据字典和系统目录。
- information_schema数据库包含几个只读表。它们实际上是视图,而不是基表。例如视图TABLES等。
- information_schema可作为SHOW语句的替代方案。
SELECT ... FROM INFORMATION_SCHEMA
语句旨在作为一种更一致的方式来提供对MySQL支持的各种SHOW语句(SHOW DATABASES
、SHOW TABLES
等)提供的信息的访问。
performance_schema
https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html
- 用于在低级别监视MySQL服务器执行(旨在提供对有关服务器执行的有用信息的访问,同时对服务器性能的影响最小)。
- 提供了一种在运行时检查服务器内部执行的方法。
- 监视服务器事件。
- performance_schema中的表是不使用持久磁盘存储的内存表。内容在服务器启动时重新填充,并在服务器关闭时丢弃。
sys
https://dev.mysql.com/doc/refman/8.0/en/sys-schema.html
- 这个数据库主要是通过视图的形式把information_schema和performance_schema结合起来,帮助系统管理员和开发人员监控MySQL的技术性能。
- 可用于典型的调优和诊断用例。此架数据库中的对象包括:
- 将performance_schema数据汇总为更易于理解的形式的视图(Views)。
- 执行诸如performance_schema配置和生成诊断报告等操作的存储过程(Stored procedures)。
- 查询performance_schema配置并提供格式化服务的存储函数(Stored functions)。
参考资料:
- MySQL - 尚硅谷 - 宋红康
- MySQL官方文档