何时使用MyISAM和InnoDB?

这个问题在这里已经有了答案:

  • MyISAM与InnoDB 27的答案

  • 阅读关于存储引擎

    MyISAM数据:

    MySQL中的MyISAM存储引擎。

  • 设计和创建更简单,因此对初学者更好。 不用担心表格之间的外部关系。
  • 整体而言,由于结构更简单,服务器资源成本更低,因此总体上比InnoDB更快。 - 大部分不再是真的。
  • 全文索引。 - InnoDB现在拥有它
  • 特别适合读密集(选择)表格。 - 大部分不再是真的。
  • 磁盘占用空间比InnoDB少2至3倍。 - 从5.7版本开始,这可能是MyISAM唯一的真正优势。
  • InnoDB的:

    MySQL中的InnoDB存储引擎。

  • 支持交易(为您提供对ACID资产的支持)。
  • 行级锁定。 与例如MyISAM相比,拥有更细粒度的锁定机制可为您提供更高的并发性。
  • 外键约束。 允许您让数据库确保数据库状态的完整性以及表之间的关系。
  • InnoDB比MyISAM更能抵抗表损坏。
  • 支持数据和索引的大型缓冲池。 MyISAM密钥缓冲区仅用于索引。
  • MyISAM停滞不前; 所有未来的增强将在InnoDB中进行。 随着8.0版的推出,这一点非常明确。
  • MyISAM限制:

  • 没有外键和级联删除/更新
  • 没有交易完整性(符合ACID)
  • 没有回滚能力
  • 4,284,867,296行限制(2 ^ 32) - 这是旧的默认值。 可配置的限制(对于许多版本)是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。 如果你需要更多的性能,选择InnoDB并多投一些硬件。 另一个想法是在适用的情况下查看具有更多功能的数据库系统,如PostgreSQL。

    编辑 :对于读取性能,此链接显示innoDB通常实际上不比MyISAM慢:http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part 1 /

    链接地址: http://www.djcxy.com/p/52233.html

    上一篇: When to use MyISAM and InnoDB?

    下一篇: What's the difference between MyISAM and InnoDB?