对于论坛,存储文本的表应该使用MyISAM还是InnoDB?
我知道 MyISAM 支持全文搜索,这听起来像是我应该做的,但在阅读时,我遇到了这个非常令人困惑的句子。
You should use InnoDB when transactions are important, such as for situations in which INSERTs and SELECTs are being interleaved, such as online message boards or forums.
好吧,但对于“在线留言板或论坛”,我需要很好的搜索来搜索每个帖子的文本,所以使用 MyISAM 不是更有意义吗?有人可以阐明最常用的是什么吗?
最佳答案
除了 MySQL 的 native 全文搜索解决方案(正如您已经确定的那样需要 MyISAM 存储引擎)之外,您可能还需要考虑流行的第三方搜索引擎 Sphinx和 Apache Lucene ,您可以使用它来使用 InnoDB 表。
您也可以坚持使用 MySQL 的解决方案,并为所有表使用 InnoDB 存储,除了一个表,该表将简单地保存 post_id
和 text_body
。这是假设您只需要全文搜索论坛帖子的内容。
另外请注意,虽然 MyISAM 的主要缺陷是缺乏事务支持,但对于生产系统而言,还有其他重要问题。您可能需要查看以下文章以进一步阅读:
关于php - 论坛帖子表应该使用 MyISAM 还是 InnoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848730/