MySQL – Innodb,search

我最近从我的mysql表中切换到innodb。 在我使用MATCH()之前。 由于innodb不支持match(),我决定使用LIKE。

现在我有一个问题。 我的桌子是190,6 MiB大,有234,083行。 当我使用LIKE时,我的服务器变慢。

我从myisam切换到innodb来停止locking桌子。

我该怎么办? 谢谢!

如你所知,MyISAM表格在写重的情况下不会太好。 InnoDB在那里更好; 但没有全文索引(使用match() )。 这可以归结为几个答案:

  • 您可以在InnoDB上使用写入重要的表格,在MyISAM上使用全文(只应该是一两个)

  • 如果他们是一样的; 或者如果有几个表有大的文本,那么将这些文本排列到一个单一的(MyISAM)表中,只需要将文本和关键字join到任何其他表中。

  • 如果文本本身是重写的文本,咬住子弹,并使用专门的文本search引擎(狮身人面像,Lucene的等)

这也是我正在处理的一个问题。 有人指向我的狮身人面像引擎 。

这里有一篇关于MySQL论坛上的性能的文章

目前为止还没有紧迫的,所以我还没有testing过。 如果你走这条路,请让我知道你的调查结果。