Innodb 和 MyIsam 两种存储引擎的文件存储结构
Myisam 更适合读取大于写入的业务,同时不支持事物。支持全文搜索。
Innodb 支持事物,效率上比myisam稍慢。不支持全文搜索。
Myism物理文件结构为:
.frm文件: 与表相关的 元数据信息 都存放在frm文件, 包括表结构的定义信息等 。
.myd文件: myisam存储引擎专用,用于存储myisam 表的数据
.myi文件: myisam存储引擎专用,用于存储myisam表的 索引相关信息
Innodb的物理文件结构为:
.frm文件: 与表相关的 元数据信息 都存放在frm文件, 包括表结构的定义信息等 。
.ibd文件和.ibdata文件:
这两种文件都是存放innodb数据的文件,之所以用两种文件来存放innodb的数据,是因为innodb的数据存储方式能够通过配置来决定是使用 共享表空间 存放存储数据,还是用 独享表空间 存放存储数据。
独享表空间 存储方式使用.ibd文件,并且每个表一个ibd文件
共享表空间 存储方式使用.ibdata文件,所有表共同使用一个ibdata文件
觉得使用哪种方式的参数在mysql的配置文件中 innodb_file_per_table
关于删除了数据之后,物理文件大小并没有变化的解释
删除之后还有碎片,通过OPTIMIZE TABLE 命令来进行表优化。这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费 。OPTIMIZE TABLE 命令只对 MyISAM 、 BDB 和 InnoDB 表起作用 。