0

数百万行のリレーショナル データベース テーブルがあり、それぞれがこのテーブル内の数百行にリンクされています。これは単純な関係ですが、何百万行もあると問題になります。新しい行が追加されるたびに、範囲全体をスキャンする必要があります。

この操作を実行するより効率的な方法はありますか?

私は、検索エンジンがすでにこの問題をさらに大規模に解決していると確信しています。(この種の問題を表す用語はありますか?)

4

1 に答える 1

0

標準のデータベース システムではインデックスを使用するため、データベース全体を線形スキャンせずに新しい行を処理できます。

従来のテキスト検索システムでは、大量の影響をバッチで処理していました。たとえば、すべての単語を並べ替えて逆索引を作成していました。バッチ実行を価値のあるものにするのに十分な入力を蓄積する (または Web から収集する) まで、しばらく待機します。そのため、バッチ処理のコストを大量の入力に分散させます。次に、バッチ処理の結果をこれまでに蓄積されたデータとマージするか、それを分離しておいて、ユーザーがクエリを送信したときにインデックス付きデータの複数のチャンクを検索できます。

より具体的な質問がなければ、より具体的なものを作成することはできませんが、多数の入力行からキーワードを抽出し、それらを並べ替えて、並べ替えられたキーワードの 1 つのリストを作成すると、マッチング プロセスに役立つことがわかるかもしれません。現在格納されているすべての行のキーワードの逆インデックス。

于 2012-09-28T04:30:09.840 に答える