mysql fulltext第一个/最后一个昵称搜索很慢

时间:2012-11-20 23:49:12

标签: php mysql performance full-text-search

我正在使用30-40毫米记录数据库进行全文搜索。其中80%在一张桌子里。我正在搜索姓氏和全名,因为全名可以通过多种方式存储“账单大门”“盖茨,账单”,“账单和梅琳达盖茨”等等。我们还有一个昵称数据库,所以它将搜索'bill','will','william'等等。它总是花费时间来找到昵称,但是一旦我实现了查询以包含昵称,它现在需要更长的时间。

SELECT * FROM db1 
WHERE MATCH (Name) AGAINST (' +bill +gates 'IN BOOLEAN MODE) UNION ALL 
... (then the other 8 dbs the same) limit 500

与之相比:

SELECT * FROM db1 
WHERE MATCH (Name) AGAINST (' +("bill" "will" "william") +gates 'IN BOOLEAN MODE) UNION ALL 
... (then the other 8 dbs the same) limit 500

有没有办法加快速度?与3-5秒相比,搜索时间超过40秒。即使有更多的机会击中它,容易达到500分的名称也应该会达到500分。

1 个答案:

答案 0 :(得分:0)

使用搜索引擎代替MySql,它将节省您的时间。 看看Solr或Sphinx。

Sphinx有mysql插件。