【问题标题】:Which engine? InnoDb or MyISAM? [closed]哪个引擎? InnoDb 还是 MyISAM? [关闭]
【发布时间】:2014-09-19 11:25:32
【问题描述】:

我使用 php 编写了一个在线商店脚本。

一些脚本,例如使用 MyISAM 引擎的 opencart 和使用 InnoDb 的脚本。

现在我不知道使用哪个引擎? InnoDb 还是 MyISAM?

【问题讨论】:

标签: php mysql innodb myisam php-5.4


【解决方案1】:

这完全取决于您的观点...功能方面... InnoDb 支持表关系而 MyISAM 不支持...但是 MyISAM 支持 InnoDb 不支持的全文搜索

【讨论】:

  • 谢谢。我现在没有 MyISAM 不支持关系。
  • 仅供参考:现在在最新的 mysql 5.6 版本中,它也支持使用 InnoDB 进行完整测试搜索。dev.mysql.com/doc/refman/5.6/en/…
  • 如果mysql版本是5.6,我认为最好的选择是InnoDB,谢谢@TapaswiPanda
【解决方案2】:

InnoDB 和 MyISAM(“关于设计表或数据库”你问过)支持“参照完整性”和“事务”。

如果您需要数据库强制执行外键约束,或者您需要数据库支持事务(即两个或多个 DML 操作所做的更改作为单个工作单元处理,所有更改要么应用,要么所有更改已恢复)然后您将选择 InnoDB 引擎,因为 MyISAM 引擎没有这些功能。

这是最大的两个区别。另一个很大的区别是并发性。使用 MyISAM,DML 语句将获得表上的排他锁,并且在持有该锁时,没有其他会话可以对表执行 SELECT 或 DML 操作。

您询问的这两个特定引擎(InnoDB 和 MyISAM)具有不同的设计目标。 MySQL 也有其他存储引擎,有自己的设计目标。

因此,在 InnoDB 和 MyISAM 之间进行选择时,第一步是确定您是否需要 InnoDB 提供的功能。如果没有,那么可以考虑使用 MyISAM。

【讨论】:

  • 对交易的支持对于购物车应用程序来说尤其重要
  • 我更喜欢 InnoDB 用于 FK 和事务,但有时我需要 MyISAM 进行全文搜索
猜你喜欢
  • 2016-12-23
  • 2012-10-02
  • 2011-08-13
  • 1970-01-01
  • 2011-05-29
  • 2011-03-22
  • 2012-04-19
  • 2012-04-08
  • 2014-02-26
相关资源
最近更新 更多