php - 论坛帖子表应该使用 MyISAM 还是 InnoDB

标签 php mysql innodb forum myisam

对于论坛,存储文本的表应该使用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 存储引擎)之外,您可能还需要考虑流行的第三方搜索引擎 SphinxApache Lucene ,您可以使用它来使用 InnoDB 表。

您也可以坚持使用 MySQL 的解决方案,并为所有表使用 InnoDB 存储,除了一个表,该表将简单地保存 post_idtext_body。这是假设您只需要全文搜索论坛帖子的内容。

另外请注意,虽然 MyISAM 的主要缺陷是缺乏事务支持,但对于生产系统而言,还有其他重要问题。您可能需要查看以下文章以进一步阅读:

关于php - 论坛帖子表应该使用 MyISAM 还是 InnoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848730/

相关文章:

MYSQL:类似方法,相似单词 - 但不显示搜索到的单词

mysql - 如何使用两个索引对 MySQL 表进行分区

php - 为什么 TRANSACTION/COMMIT 使用 PHP/MySQL (InnoDB) 提高了性能?

php - mysqli_connect()上的PHP fatal error ;

php - preg_replace() 正则表达式以匹配 CSS 文件中的相对 url() 路径

php - 未定义索引 : XXXXX in php yii after upgrade MySql

mysql - 带有预先加载和 lockForUpdate 的查询是否也会锁定预先加载的行?

PHP move_uploaded_file 上传视频到 MySQL 不工作

php - 使用大型数据库时,Ajax 请求需要很长时间才能完成

php从mysql中提取数据