给我一些实际的例子,在这些例子中我可以理解myisam和innodb引擎的使用
MyISAM存储引擎显然正在逐步淘汰,我预计它最终将从MySQL中删除。
如果你想继续升级到较新版本的MySQL,你应该把你的数据库设计成永远不要使用MyISAM。
MyISAM不支持以下任何一项:
- 酸性
- 外键
- 交易
- 聚集索引
- 行级锁定
- 并发更新
- 崩溃恢复 数据缓存
- (仅缓存索引;数据由文件YTEM缓存(
- 分区(在 MySQL 8.0 中(
据我所知,MyISAM工程团队没有改进。
从MySQL 5.7开始,MyISAM仍然用于mysql.*
模式中的授权表,但在8.0中,这些表都存储在InnoDB中。
在我的上一个项目中,我只将MyISAM用于一个表。该表存储了 50 亿行,需要存储在磁盘空间有限的服务器上,没有升级计划或预算。MyISAM存储此表的空间是InnoDB的一半(您的情况可能会获得不同的存储比率,具体取决于数据类型,索引和其他因素(。使用MyISAM,我可以将此表存储在服务器上,直到可以升级为止。使用InnoDB,表格会太大。