1

这是我在 Stackoverflow 中阅读的一篇文章中学到的。

“我看到的第一个主要区别是 InnoDB 实现了行级锁,而 MyISAM 只能执行表级锁。您会在 InnoDB 中找到更好的崩溃恢复。但是,它没有 FULLTEXT 搜索索引,MyISAM 也是如此。InnoDB还实现了事务、外键和关系约束,而 MyISAM 没有。”

由于大多数站点需要表之间的关系以及站点搜索,他们使用哪个引擎?我应该选择哪一个?

4

1 回答 1

2

我在 Percona 工作,这是一家领先的 MySQL 咨询和培训公司。我们推荐 InnoDB 作为存储引擎的默认选择,而 MyISAM 仅在可以证明它具有一些优势的特殊情况下推荐(即通过对您的应用程序使用两种存储引擎进行基准测试来证明它)。

自 2010 年 12 月起,InnoDB 已成为 MySQL 5.5 的默认存储引擎。

在 2013 年 2 月发布的 MySQL 5.6 中,InnoDB 现在支持自己的全文索引实现。但是大多数需要大规模全文搜索的网站发现使用 Sphinx 搜索仍然更胜一筹。另请参阅我的演示文稿Full Text Search Throwdown

InnoDB 不仅具有您列出的优势,而且在许多基准测试中也比 MyISAM 更快。许多年前,曾经有一段时间,人们认为 MyISAM 是更快的存储引擎。但是 InnoDB 已经收到了大量的工作来提高它的性能和可扩展性。

InnoDB 需要更多地注意调整配置变量,因为默认值并不完全适合生产网站使用。我有另一个演示文稿,InnoDB 状态指南,它描述了一些最重要的调优选项。

于 2013-02-13T05:22:56.063 回答