一、mysql的物理文件默认体系结构

  • 默认采用的是在linux系统下yum安装mysql的默认文件结构(/var/lib/mysql)

mysql文件存储格式表 mysql存储文件方案_mysql

  • 下面是在navcate下查看mysql
  • (比较有意思的是建立的数据库名称为高性能mysql结果存储的数据库文件目录是(@9ad8@6027@80fdmysql)

mysql文件存储格式表 mysql存储文件方案_mysql_02

数据库文件:

  • 一个数据库对应一个文件夹,创建了六个数据库 其中: 高性能mysql对应的是@9ad8@6027@80fdmysql那么information_schema这个数据库呢?

information_schema它叫做信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在information_schema中,有数个只读表。它们实际上是视图,而不是基本表,所以无法看到与之相关的任何文件。

mysql文件存储格式表 mysql存储文件方案_数据_03

这张图(information_schema的TABLES表)显示了我们高性能mysql的People表、用的存储引擎的方式、表中的字段信息等等。关于更多information_schema的内容请参考MySQL 5.7 INFORMATION_SCHEMA 详解

  • 以高性能mysql这个数据库为例

mysql文件存储格式表 mysql存储文件方案_mysql文件存储格式表_04

  • 我们可以看到后缀名为 .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 物理文件体系结构的整理说明