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