我正在对 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 大关似乎需要更长的时间,即使它有更多的机会达到。