MYSQL 数据文件
在mysql 中每一个数据库都会在定义好的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。不同的Mysql 存储引擎有各自不同的数据文件,存放的位置也有区别。多数存储引擎的数据文件都存放在和MyISAM 数据文件位置相同的目录下,但是每个数据文件的扩展名却各不相同。如
MyISAM 用".MYD"
作为扩展名,Innodb 用".idb"
,Archive 用".arc"
,CSV 用".csv"
等等。
1. ".frm" 文件
与表相关的元数据(meta)信息都存放在".frm" 文件中,包括表结构的定义信息等。不论是什么存储引擎,每一个表都会有一个以表名命名的 ".frm" 文件。所有的 ".frm" 文件都存放在所属数据库的文件夹下面。
2. ".MYD" 文件
".MYD" 文件是MyISAM 存储引擎专用,存放MyISAM 表的数据。每一个MYI 表都会有一个 ".MYD" 文件与之对应,同样存放于所属数据库的文件夹下,和 ".frm" 文件在一起。
3. ".MYI" 文件
".MYI" 文件也是专属于MyISAM 存储引擎的,主要存放MyISAM 表的索引相关信息。对应于MyISAM存储来说,可以被cache 的内容主要就是来源于 ".MYI" 文件中。每一个MyISAM 表对应一个 ".MYI" 文件,存放位置和 ".frm" 以及 ".MYD" 一样。
4. ".ibd" 文件和 ibdata 文件
这两种文件都是存放Innodb 数据的文件,之所以有两种文件来存放Innodb 的数据(包括索引),是因为Innodb 的数存储方式能够通过配置来解决是使用共享表空间存放存储数据,还是独享表空间存放存储数据。
独享表空间存储方式使用 ".idb" 文件来存放数据,且每个表一个 ".idb" 文件,文件存放在和MyISAM 数据相同的位置。
如果选用共享存储表空间来存放数据,则会使用 ibdata 文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件。ibdata 文件可以通过 innodb_data_home_dir 和 innodb_data_file_path 两个参数共同配置组成
内容摘录:mysql性能调优与架构设计