关于mysql:在哪种情况下应该使用MYISAM和INNODB引擎

In Which situation MYISAM AND INNODB Engine should be used

本问题已经有最佳答案,请猛点这里访问。

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


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,表格太大了。