Skip to content

数据目录和系统数据库

数据目录的组成

sql
# 查看mysql的数据目录(不是安装目录,安装目录包含bin文件夹)
SHOW VARIABLES LIKE 'datadir';

MySQL的数据目录下存在与创建的数据库同名的文件夹,文件夹内会存在表名.frm表名.ibd两种类型的文件。

其中表名.frm是表结构的描述文件,表名.ibd存放的是表的数据(MySQL5.6.6以前的版本中所有的表记录都存放到名为ibdata1的文件中(系统表空间),之后的版本中每个表都对应着一个表名.ibd的文件(独立表空间)。

除此之外,数据目录下还存在MySQL服务进程文件、日志文件、SSL和RSA密钥文件等。

MySQL系统数据库

  • mysql

    它存储了MySQL的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。

  • information_schema

    这个数据库保存着MySQL服务器维护的所有其他数据库的信息,比如有哪些表、哪些视图、哪些触发器、哪些列、哪些索引。这些信息并不是真实的用户数据,而是一些描述性信息,有时候也称之为元数据。

  • performance_schema

    这个数据库里主要保存MySQL服务器运行过程中的一些状态信息,算是对MySQL服务器的一个性能监控。包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等等信息。

  • sys

    这个数据库主要是通过视图的形式把information_schemaperformance_schema结合起来,让程序员可以更方便的了解MySQL服务器的一些性能信息。