【发布时间】:2012-09-06 21:50:04
【问题描述】:
innoDB 和 MyISAM 中索引的主要区别是什么?
【问题讨论】:
-
这可能会有所帮助:dba.stackexchange.com/a/17434
标签: mysql indexing innodb myisam
innoDB 和 MyISAM 中索引的主要区别是什么?
【问题讨论】:
标签: mysql indexing innodb myisam
InnoDB 是一个完整的ACID compliant 数据库,支持事务、MVCC、复制,并且像现代文件系统一样保存更改日志,以便在突然崩溃或硬件故障的情况下可以恢复到最后一个已知的- 数据库状态良好。
MyISAM 是 MySQL 的原始数据库引擎,专注于速度而不是可靠性。它缺乏事务支持并且不使用日志,因此如果数据库崩溃,它很容易损坏。在这方面,它很像 Linux ext2 文件系统。这是高端计算机可能拥有全部 256MB 内存和 9GB 硬盘被认为是大的时代的产物。
虽然在过时的硬件上 MyISAM 是必需品,但在现代硬件上 InnoDB 实际上表现更好。自推出以来,它一直在不断改进,并进行了积极优化。 MySQL 的每个版本都继续提升 InnoDB 的性能,而 MyISAM 基本上保持不变,纯粹是为了遗留问题。
因此,除非您有充分的理由,否则您应该将 InnoDB 用于所有新应用程序。
【讨论】: