2017-08-26 114 views

回答

1

MyISAM存储引擎显然是被淘汰了,我希望它最终会从MySQL中删除。

如果你想继续升级到较新版本的MySQL,你应该设计你的数据库到从来没有使用MyISAM。

MyISAM不支持任何以下内容:

  • ACID属性
  • 外键
  • 交易
  • 聚集索引
  • 行级锁定
  • 并发更新
  • 崩溃恢复
  • 数据缓存(只有索引被缓存;数据由filesytem)
  • 分区(在MySQL 8.0)

的MyISAM是MySQL的工程团队接受没有改善,因为据我所知缓存。

自MySQL 5.7起,MyISAM仍然用于mysql.*架构中的授权表,但在8.0中,这些表都存储在InnoDB中。

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

相关问题