一、mysql的物理文件默认体系结构
- 默认采用的是在linux系统下yum安装mysql的默认文件结构(/var/lib/mysql)
- 下面是在navcate下查看mysql
- (比较有意思的是建立的数据库名称为高性能mysql结果存储的数据库文件目录是(@9ad8@6027@80fdmysql)
数据库文件:
- 一个数据库对应一个文件夹,创建了六个数据库 其中: 高性能mysql对应的是@9ad8@6027@80fdmysql那么information_schema这个数据库呢?
information_schema它叫做信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在information_schema中,有数个只读表。它们实际上是视图,而不是基本表,所以无法看到与之相关的任何文件。
这张图(information_schema的TABLES表)显示了我们高性能mysql的People表、用的存储引擎的方式、表中的字段信息等等。关于更多information_schema的内容请参考MySQL 5.7 INFORMATION_SCHEMA 详解
- 以高性能mysql这个数据库为例
- 我们可以看到后缀名为 .idb .frm .MYI .MYD .opt的文件,根据表存储引擎不同所生成的表文件文件也会不同。通过下面的三张图演示存储引擎不同对应文件不同的区别(innodb和MYISAM)为例
通用文件与存储引擎无关
后缀名 | 描述 |
.frm | 存储数据表的框架结构、表定义信息 |
.opt | 保存的是数据库的配置信息,比如编码信息 |
innodb表文件存储结构简单描述
文件名 | 出现场景 | 存储内容 | 实现方式 | 描述 |
table_name.idb | 独占表空间 | 表的数据内容以及索引内容 | 在配置文件(my.cnf)中设置: innodb_file_per_table=on | 每一个表生成一个table_name.idb文件 |
ibdata1(默认大小10MB) | 共享表空间 | 所有表的数据内容以及索引内容 | 在配置文件(my.cnf)中设置: innodb_file_per_table=off | 所有表的数据,索引文件全部放在一个文件中 |
MYISAM的表文件存储结构简单描述
文件名 | 存储内容 | 描述 |
table_name.MYI | 存储表的索引信息 | 每一个表生成一个table_name.MYI文件 |
table_name.MYD | 存储表的数据信息 | 每一个表生成一个table_name.MYD文件 |
其他文件:
- redo重做日志文件:ib_logfile0,ib_logfile1,是支持事务性引擎的redo日志文件
- 临时表空间:ibtemp1,存储临时对象的空间,比如临时表对象等。
- mysql.sock:作用是MySQL服务器本身的客户端连接的时候,发起本地连接时可用
- mysql配置文件:/etc/my.cnf
- 日志文件的位置:cd /var/log/mysqld.log
具体详细请参考MySQL 物理文件体系结构的整理说明