Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 论坛帖子表应该使用MyISAM还是InnoDB_Php_Mysql_Innodb_Forum_Myisam - Fatal编程技术网

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

Php 论坛帖子表应该使用MyISAM还是InnoDB,php,mysql,innodb,forum,myisam,Php,Mysql,Innodb,Forum,Myisam,对于论坛,我应该使用MyISAM还是InnoDB作为存储文本的表 我知道MyISAM支持全文搜索,听起来我应该这样做,但在阅读时,我遇到了这个非常令人困惑的句子 您应该在需要时使用InnoDB 交易很重要,例如 对于插入和 正在交错选择,例如 在线留言板或论坛 好吧,但是对于“在线留言板或论坛”,我需要良好的搜索来搜索每篇文章的文本,所以使用MyISAM不是更有意义吗?有人能弄清最常用的是什么吗? < P>除了MySQL的原生全文搜索解决方案,正如你已经确定的,需要MyISAM存储引擎,你也可以

对于论坛,我应该使用MyISAM还是InnoDB作为存储文本的表

我知道MyISAM支持全文搜索,听起来我应该这样做,但在阅读时,我遇到了这个非常令人困惑的句子

您应该在需要时使用InnoDB 交易很重要,例如 对于插入和 正在交错选择,例如 在线留言板或论坛


好吧,但是对于“在线留言板或论坛”,我需要良好的搜索来搜索每篇文章的文本,所以使用MyISAM不是更有意义吗?有人能弄清最常用的是什么吗?

< P>除了MySQL的原生全文搜索解决方案,正如你已经确定的,需要MyISAM存储引擎,你也可以考虑流行的第三方搜索引擎,并且可以使用NYNDB表。

您也可以坚持使用MySQL的解决方案,对所有表使用InnoDB存储,除了一个表,它只需保存
post\u id
text\u body
。这是假设你只需要全文搜索论坛帖子的内容

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


    • 对于任何大容量的文本,我都会使用InnoDB来存储和索引。它提供了比mysql内置的搜索功能多得多的搜索功能。

      一般来说,对于非关键数据,我会使用经过速度调整的InnoDB。(例如,我不会在每次提交时刷新二进制日志。)我只会将MyISAM用于记录表之类的事情

      正如其他人提到的,如果需要进行全文搜索,可以使用外部搜索索引。它们比MySQL更强大、更快

      关于交易的部分,这是一个谎言。通过锁定表进行写入,可以对MyISAM执行相同的操作。如果在发布消息时插入(例如)三个表,则可以锁定所有三个表进行写入,并且数据看起来是一致的(假设所有三个插入都成功)

      但问题是您锁定了整个表,这会降低并发使用的速度。事实上,这是InnoDB相对于MyISAM的主要优势之一:它具有行级锁定

      简言之:如果您无法设置外部索引器,并且您的站点没有太多的流量,那么MyISAM将很好地工作,尽管它不够健壮。您可以使用表锁模拟事务的一致性。(我并不是说表锁定在某种程度上等同于事务。)


      否则,我会将InnoDB与外部索引服务一起使用。

      而且MyISAM的长崩溃恢复在数据较大时(在论坛中就是这样)。@racetrack,你的意思是InnoDB从崩溃中恢复的速度比MyISAM快?@dave如果数据文件较大,则恢复的速度要快得多。当InnoDB只是通过重放日志文件进行恢复时,MyISAM需要完全扫描和修复/重建索引。我在这里发布了一个问题,您可能有兴趣对此发表评论: