2012-02-25 200 views
0

我想要的代码不会导致服务器负载找到PHP/MySQL的类似职位最好的办法

我尝试用

MATCH (post) AGAINST ('string string') 

,但它是负荷的原因很多服务器,因此它停止我的服务器

我有超过4125274后在我的数据库

请帮我

+0

你的数据库看起来像什么?你有4个万条记录在一个表中? – ale 2012-02-25 14:48:51

+0

是,vBulletin评论(职位) – user1232634 2012-02-25 14:58:18

+0

我想你对职位的全文索引? – stryba 2012-02-25 17:25:44

回答

0

假如你已经有一个后全文索引,这并不能帮助你应考虑将一个专门的搜索引擎对你的讯息,如Lucene的(不一定是PHP实现虽然)

4

虽然全文索引将帮助,如果你想多次加载类似的项目,它仍然会很慢。我们有一个具有全文约700万篇文章的实现,并且最多可能需要一分钟时间来搜索我们是否仅依赖于mysql。

一个很好的选择是,如斯芬克斯http://sphinxsearch.com/它创建自己的索引和缓存,同时也非常非常快的搜索服务器。 它简单高效,被urbandictionary,craiglist,mozilla等许多大地方使用。

如果你只想在mysql查询中做到这一点,并且你不想多次搜索一次,请尝试在memcached上缓存返回的ID。