在哪种情况下应使用MYISAM和INNODB引擎

时间:2017-08-26 15:03:41

标签: mysql innodb myisam

给我一​​些实际的例子,我可以理解myisam和innodb引擎的使用

1 个答案:

答案 0 :(得分:1)

MyISAM存储引擎显然已被逐步淘汰,我预计它最终将从MySQL中删除。

如果您想继续升级到更新版本的MySQL,您应该将数据库设计为从不使用MyISAM。

MyISAM不支持以下任何内容:

  • ACID属性
  • 外键
  • 交易
  • 聚集索引
  • 行级锁定
  • 并发更新
  • 崩溃恢复
  • 数据缓存(仅缓存索引;数据由文件系统缓存)
  • 分区(在MySQL 8.0中)
据我所知,MyISAM没有得到MySQL工程团队的改进。

从MySQL 5.7开始,MyISAM仍用于mysql.*模式中的授权表,但在8.0中,这些表都存储在InnoDB中。

在我的上一个项目中,我只将MyISAM用于一个表。该表存储了50亿行,并且需要存储在磁盘空间有限且没有升级计划或预算的服务器上。 MyISAM将此表存储在InnoDB的一半空间(您的情况可能会获得不同的存储比率,具体取决于数据类型,索引和其他因素)。使用MyISAM,我可以将此表存储在服务器上,直到它可以升级。使用InnoDB,表格太大了。