【问题标题】:what are the difference between InnoDB and MyISAMInnoDB 和 MyISAM 有什么区别
【发布时间】:2010-03-11 17:45:12
【问题描述】:

InnoDB 和 MyISAM 有什么区别。 我可以去哪一个? 一个提供而另一个不提供的任何区域? 这两种类型中的任何一种都存在技术限制吗? 请帮我为我的项目选择合适的类型?

【问题讨论】:

标签: java mysql database innodb myisam


【解决方案1】:

有几个不同之处,但我能想到的最重要的是:

  • InnoDB 是一个事务引擎——即它支持事务
  • InnoDB 支持外键
  • MyISAM 只在表级别锁定 -- InnoDB 在行级别锁定


wikipedia entry on InnoDB 列出了一些差异——其中一些我没有谈到;-)

您可能会对 MySQL 手册的 Chapter 13. Storage Engines 部分感兴趣,这对于 InnoDB 和 MyISAM 来说可能是一个不错的参考。
特别是,我想说:

【讨论】:

  • @pascal 你的意思是说 InnoDB 提供了对表的锁定访问和行访问,因此这意味着当一个用户执行插入或更新操作时,我可以阻止访问该表。跨度>
  • @hagrim :据我所知,使用 MyISAM,当有人执行一些写入操作时,它会锁定整个表 (防止任何其他写入) - 使用 InnoDB,在至少在某些情况下,它应该只锁定受影响的行(允许其他人写入其他一些未锁定的行)
【解决方案2】:

MySQL Docs 提供了一个很好的破败和用例。您选择的存储引擎将取决于您使用它的目的。

最大的不同是 innodb 支持 ACID 兼容的事务和行级锁定。

【讨论】:

    【解决方案3】:

    另一个重要区别:到目前为止,MyISAM 支持全文搜索,但 InnoDB 不支持。因此,如果您想让搜索索引对文本列有效,您必须使用 MyISAM 或随意修改。

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 2011-08-26
      • 2011-04-18
      • 2016-10-06
      • 1970-01-01
      • 2011-09-27
      • 2012-05-15
      • 2012-03-01
      • 1970-01-01
      相关资源
      最近更新 更多