我正在使用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分。
答案 0 :(得分:0)
使用搜索引擎代替MySql,它将节省您的时间。 看看Solr或Sphinx。
Sphinx有mysql插件。