wuxinliulei
无心流泪
2019-08-07 15:58
采纳率: 28.6%
浏览 981

为什么MySQL的Innodb类型数据库只有一个.frm文件,而MyISAM数据库需要多MYD MYI两个文件?

为什么MySQL的Innodb类型数据库只有一个.frm文件,而MyISAM数据库需要多MYD MYI两个文件?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • upzhang
    upzhang 2019-08-07 17:01
    已采纳

    这是由不同的存储结构造成的,Innodb和MyISAM都使用.frm文件来存储表结构,如果表里有数据,一般还会有个.ibd文件,用于存储表数据及索引等;MyISAM同样使用.frm存储表结构,不过使用.myd和.myi分别存储表数据和表索引。也就是说MyISAM不是多了文件,而是这两者文件根本就不一样。

    点赞 评论
  • wojiushiwo945you
    毕小宝 2019-08-07 17:41

    这是两个不同的引擎,可能是由不同的团队开发的,所以可能会有些差异的,不必太纠结。

    点赞 评论
  • wuxinliulei
    无心流泪 2019-08-07 20:20

    感谢大家的回答,补充下:
    在innodb引擎中,
    frm文件:保存了每个表的元数据,包括表结构的定义等;

    .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。
    在myisam引擎中是myd和myi两个文件用来保存数据和索引

    点赞 评论

相关推荐