30 ~ 40 のミル レコード データベースに対して全文検索を使用しています。その 80% は 1 つのテーブルにあります。フルネームは複数の方法で保存できるため、フルテキストで姓名を検索しています。 「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 マークを簡単に達成できるはずですが、ヒットする可能性は高くなりますが、時間がかかるようです。