我最近从我的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过。 如果你走这条路,请让我知道你的调查结果。