MySQL自带的4个数据库

安装过MySQL后,MySQL中自带了4个数据库。 information_schema 关于数据的数据,你可以叫做元数据。下面看下information_schema数据库中包含的表都是些什么。 CHARACTER_SETS:从名字看数据库支持的字符集 COLLATIONS:字符序。 COLUMNS:表中的列信息 ENGINES:存储引擎 SCHEMATE:提供所有数据库信息。show databases; *_PRIVILEGES:权限信息 还有很多表,基本上看名字可以看出来存储的信息。 之前我就不太明白COLLATION的概念。这里了解了一下。COLLATION是对比方法,用于指定数据集如何排序,以及字符串的比较规则。先看下字符集里面utf8mb4对应的default collation是utf8mb4_general_ci。这里面ci代表case ignore我猜的。总结下COLLATION的定义有两种格式。 <character_set>_<language/other>_<ci/cs> <character_set>_<bin> cs就是 case sensitive。bin是二进制。 在查看一下COLLATIONS表中character_set为utf8mb4的结果,可以看到同一个字符集可以有很多COLLATIONS来选择,不同COLLATION的排序、字符对比的准确性和性能都不同。 MySQL数据库服务器有SHOW指令方便我们查询information_schema表中的信息。如常用的 show databases、show tables、show processlist等。 DESCRIBE TABLE也是使用到这个数据库中信息。 顺便提一下之前在使用Django migrate的时候在information_schema中某个表找信息帮助我定位到错误的。现在还没有安装环境没有办法验证。 mysql 就像名字里自带的高贵一样,这个表里面不用来放核心数据都说不过去。不要乱改。但是看看还是可以的。之前配置的主从同步就涉及到mysql.slave_master_info表。 performance_schema show variables like 'performance_schema';查看了下我电脑上装的是开启的。 主要是服务器监控信。performance_schema数据库中的表都是使用preformance_schema引擎不占用磁盘存储。 其实我更没有使用过。先知道这么个东西吧。 sys 在MySQL 5.7中加入,包含了一系列的存储过程、自定义函数以及视图来帮助我们快速了解系统的元数据信息。 sys数据库下除了sys_config是表以为,其他都是视图。 我觉得这个可以认为是一个方便的工具集么。sys下面的视图分为几类 host_summary: 服务器层面 user_summary: 用户层级 InnoDB: InnoDB层面 IO: I/O层的统计 memory schema session statement wait 扩展阅读: 在Oracle专家眼中,MySQL sys schema是怎样的存在

阅读全文

作者的图片

Snail Mu

自律让人自由

Python backend Developer

China