MySQL四大系统库详解及常用命令
MySQL中有四个系统数据库:
(nformation_schema,mysql,performance_schema,sys)
(5.6版本为information_schema,mysql,performance_schema,test)
information_schema:提供访问数据库元的方式。元数据关于数据的数据,如数据库名,表名,访问权限,库表的数据类型,库索引的信息等。术语包括“数据字典”,“系统目录”。在information_schema中有几张只读表,实际上是视图而不是基本表。
.tables:这张表是有关于MySQL所有库中的所有表详细信息(包括视图),里面详细表述了那张表属于哪个库,表类型,表索引,表引擎,创建时间。(如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:这张表是有关于存储子程序的信息,不包含自定义函数(UDF)。
.views:这张表是有关于数据库中视图的详细信息,需要有show views权限。
.triggers:这张表是有关于触发程序的详细信息,必须有super权限才可以查看该表。
mysql:这个库是MySQL的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户,权限设置,关键字等MySQL自己需要使用的控制和管理信息。常在mysql.user表中修改root用户的密码
performance_schema:这个库主要收集数据库服务器性能参数,用于监控服务器在一个较低级别的过程中的资源消耗,资源等待等情况,并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。MySQL5.7默认是开启的。
sys:这个库数据来源于performance_schema。目标是把performance_schema的复杂程度降低,让DBA能更好的阅读这个库里的内容,让DBA更快的了解DB的运行情况。