何时使用MyISAM和InnoDB?
MyISAM的devise思想是,你的数据库被查询得远远超过它的更新,因此它执行非常快的读取操作。 如果您的读写(插入|更新)比率小于15%,则最好使用MyISAM。
InnoDB使用行级locking,提交,回滚和崩溃恢复function来保护用户数据。 它支持事务和容错
MyISAM和InnobDB之间的上述差异是否正确? 如果MYISAM和InnobDB有任何其他限制,请指导。 我应该何时使用MyiSAM或Innodb? 谢谢!
阅读关于存储引擎 。
MyISAM数据:
MySQL中的MyISAM存储引擎。
- 更简单的devise和创build,从而更好地为初学者。 不用担心表格之间的对外关系。
- 整体上比InnoDB更快,因为结构更简单,服务器资源成本更低。 – 大部分不再是真的。
- 全文索引。 – InnoDB现在拥有它
- 特别适合读取密集型(select)表格。 – 大部分不再是真的。
- 磁盘占用空间比InnoDBless2至3倍。 – 从5.7版本开始,这也许是MyISAM的唯一真正的优势。
InnoDB的:
MySQL中的InnoDB存储引擎。
- 支持交易(为您提供对ACID财产的支持)。
- 行级locking。 与MyISAM相比,拥有更细粒度的locking机制会为您提供更高的并发性。
- 外键约束。 允许您让数据库确保数据库状态的完整性以及表之间的关系。
- InnoDB比MyISAM更能抵抗表腐败。
- 支持数据和索引的大型缓冲池。 MyISAM密钥缓冲区仅用于索引。
- MyISAM停滞不前 所有未来的增强将在InnoDB中。 从8.0版本开始,这一点已经非常清楚了。
MyISAM限制:
- 没有外键和级联删除/更新
- 没有交易完整性(符合ACID)
- 没有回滚能力
- 4,284,867,296行限制(2 ^ 32) – 这是旧的默认值 。 可configuration的限制(对于许多版本)是2 ** 56字节。
- 每个表最多有64个索引
InnoDB限制:
- 没有全文索引(低于5.6的mysql版本)
- 无法压缩为快速,只读(5.5.14引入了
ROW_FORMAT=COMPRESSED
) - 你不能修复一个InnoDB表
为了简要理解,请阅读以下链接
- MySQL引擎:InnoDB与MyISAM – 比较优缺点
- MySQL引擎:MyISAM与InnoDB
- InnoDB和MyISAM的主要区别是什么?
- MyISAM与InnoDB
- MyISAM和InnoDB有什么区别?
- MySql:MyISAM与Inno DB
使用MyISAM非常不重要的数据,或者如果你真的需要这些最小的性能优势。 MyISAM的读取性能在每种情况下都不会更好。
我个人从不再使用MyISAM。 如果你需要更多的性能,selectInnoDB并且多投一些硬件。 另一个想法是在适用的情况下查看具有更多function的数据库系统,如PostgreSQL。
编辑 :对于读取性能,这个链接显示innoDB通常实际上不比MyISAM慢: http ://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part 1 /