0

重複の可能性:
SQL非同期複数クエリで結果を組み合わせる—最大結果(上位XYZ)

私は何千ものテーブルを持っており、基本的に次のような名前が付けられています。

Table_key1_key2_key3

次のように構成されています。

ID
TextColumn

テキスト列にはフルテキストインデックスがあり、各テーブルには独自のフルテキストカタログがあります。

ユーザーが一連の(key1、key2、key3)タプルを渡してテキストを検索すると、これらのテーブルのクエリを生成するストアドプロシージャがあります。一連の非同期クエリを実行します。これにより、が検索TextColumnされ、結果がテーブルに書き込まれます。それらがすべて終了したら、上位1000件の一致する結果を選択します。(また、100が終了するたびに結果テーブルを確認し、1000を超える結果がある場合は戻るように、コードを追加しました)

これに伴う問題は、特に一致するものがほとんどない場合は、まだ遅すぎることです...)。非常に多くの行があり、ユーザーは多くの場合、最大5,000(key1、key2、key3)のタプルを選択して検索します。これをさらにスピードアップできる良い方法はありますか?テーブル構造全体などに完全にアクセスできます。

4

1 に答える 1

0

このような目的で RDBMS を使用しないでください。全文検索よりもはるかに柔軟な方法を使用して大規模なドキュメント リポジトリを検索できる、ElasticSearch や Solr などの分散ソリューションを展開する方がはるかに優れています。

于 2012-11-10T05:33:05.557 に答える