今天对比一下mysql两种常用存储引擎myisam和innodb的文件存储结构:
先说一下两者的大概区别:
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
本文对比了MySQL中MyISAM和InnoDB两种存储引擎的文件存储结构。MyISAM适合读多写少场景,不支持事务;InnoDB支持事务,但效率略逊一筹。文章详细介绍了两种引擎的物理文件结构,包括.frm、.myd、.myi及.ibd和.ibdata文件的作用。
3404

被折叠的 条评论
为什么被折叠?



