1

文字列として500万のアドレスを含むテーブルがあります。アドレスで検索できるユーザーインターフェイスがあり、検索されたLIKE文字列の両端にワイルドカードを使用した構文を使用して、可能な限り簡単な方法で実装されます。ただし、このアプローチは非常に低速です(特に、検索結果を何らかの基準で並べ替える必要がある場合)。全文検索を使用するとはるかに高速になると思いましたが、ユーザーが制限され、ほとんどの検索クエリには単語の一部しか含まれていないため、使用したくありません。アドレスは省略可能です。

私に何ができる?ユーザーエクスペリエンスの多くを犠牲にすることなく、アドレス検索をより効率的に実装するにはどうすればよいでしょうか。

編集match againstIveは、全文検索 を実行するときに文字列の最後にワイルドカードを実際に使用できることを読みました。したがって、逆のアドレスを保存すると、プレフィックスワイルドカード全文検索を実行できる可能性があります。しかし、それはより速く、どれくらいになるでしょうか?ベンチマークはありますか?見つかりませんでした。

4

1 に答える 1

0

Full-Text Searchesを調べることをお勧めします。SQLのLIKE演算子は非常に非効率的です。これほど多くのレコードがある場合は特にそうです。

于 2013-03-06T23:13:30.530 に答える