何时使用 MyISAM 和 InnoDB?

MyISAM 的设计思想是,查询数据库的次数远远多于更新数据库的次数,因此它执行非常快速的读取操作。如果读写(插入 | 更新)比率小于15% ,那么最好使用 MyISAM。

InnoDB 使用行级锁定,具有提交、回滚和崩溃恢复功能来保护用户数据。它支持事务和容错

以上差异是否正确之间的 MyISAM 和 InnobDB? 请指导,如果有任何其他限制 MYISAM 和 InnobDB。什么时候我应该使用 MyISAM 或 Innob?谢谢!

179796 次浏览

对非常不重要的数据使用 MyISAM,或者如果您确实需要这些最低限度的性能优势。MyISAM 的读取性能并非在所有情况下都更好。

我个人再也不会使用 MyISAM 了。如果需要更高的性能,选择 InnoDB 并抛出更多的硬件。另一个想法是查看具有更多特性的数据库系统(如果适用的话,比如 PostgreSQL)。

编辑 : 对于读取性能,这个链接表明,InnovDB 实际上通常比 MyISAM 的 没有慢: “ a href =”https://www.percona.com/blog/2007/01/08/injdb-vs-MyISAM-vs-falcon-/“ rel =”nofollow noReferrer“ > https://www.percona.com/blog/2007/01/08/innoDB-vs-MyISAM-vs-falcon-benchmarks-part-1/

了解 储存引擎

我:

MySQL 中的 MyISAM存储引擎。

  • 更容易设计和创建,因此对初学者更好。不用担心表之间的外部关系。
  • 整体上比 InnoDB 更快,因为结构更简单,因此服务器资源的成本更低。大部分不再是真的。
  • 全文索引。—— InnoDB 现在已经有了
  • 特别适用于阅读密集型(精选)表。
  • 磁盘占用比 InnoDB 少2-3倍。在5.7版本中,这可能是 MyISAM 唯一真正的优势。

InnoDB:

MySQL 中的 InnoDB存储引擎。

  • 支持事务(支持 属性)。
  • 行级锁定: 与例如 MyISAM相比,拥有更细粒度的锁定机制可以提供更高的并发性。
  • 外键约束。允许您让数据库确保数据库状态的完整性以及表之间的关系。
  • InnoDB 比 MyISAM 更能抵抗表损坏。
  • 支持数据和索引的大型缓冲池。
  • MyISAM 停滞不前; 所有未来的增强都将在 InnoDB 中实现。随着8.0版的推出,这一点已经非常清楚了。

MyISAM 限制:

  • 没有外键和级联删除/更新
  • 没有事务完整性(ACID 遵从性)
  • 没有回滚能力
  • 4,284,867,296行限制(2 ^ 32)——这是旧的 违约。可配置的限制(对于许多版本)是2 * * 56字节。
  • 每个表最多有64个索引

创新数据库限制:

  • 没有全文索引(低于 -5.6 mysql 版本)
  • 不能压缩为快速,只读(5.5.14引入 ROW_FORMAT=COMPRESSED)
  • 无法修复 InnoDB 表

为了简要了解,请阅读以下链接:

  1. MySQL 引擎: InnoDB 与 MyISAM-专业与技术的比较 反对意见
  2. MySQL 引擎: MyISAM vs InnoDB
  3. InnoDB 和 MyISAM 的主要区别是什么?
  4. MyISAM VS InnoDB
  5. MyISAM 和 InnoDB 的区别是什么?
  6. MySql: MyISAM 对战 Inno DB!