1

これが私の問題です。

たくさんのデータを取り込みたい....現在、数百万行、後には数十億行。

私はMySQLを使用していて、今はPostgreSQLで遊んでいます。

挿入は簡単ですが、挿入する前に、その特定のレコードが存在するかどうかを確認したいのですが、存在する場合は挿入したくありません。DBが大きくなるにつれて、この操作は(明らかに)ますます長くなります。

私のデータがハッシュマップにある場合、ルックアップはo(1)になるので、ルックアップに役立つハッシュインデックスを作成すると思いました。しかし、毎回ハッシュを再度計算する必要がある場合は、プロセスが大幅に遅くなることに気付きました(インデックスを計算しない場合は、o(1)ルックアップがありません)。

だから私は困惑しています、簡単な解決策はありますか?それとも複雑なものですか?他のデータストアを試してみるのはうれしいですが、WHERE句を使用したSELECTステートメントに似たような、かなり複雑なクエリを実行できる必要があるため、no-sqlソリューションが適用できるかどうかはわかりません。

私は非常に初心者なので、些細な解決策があったとしても驚かないでしょう。

4

2 に答える 2

2

Nosqlストアは、大量の挿入と更新を処理するのに適しています

MongoDBには、ドキュメントが存在するかどうかに基づいて、更新/挿入(アップサートと呼ばれる)のための非常に優れた機能があります。

mongodocからこのページをチェックしてください

http://www.mongodb.org/display/DOCS/Updating#Updating-UpsertswithModifiers

また、mongo接続でセーフモードをチェックアウトすることもできます。これをfalseに設定すると、挿入の効率が向上します。

http://www.mongodb.org/display/DOCS/Connections

于 2011-07-10T15:31:48.933 に答える
1

CouchDBを使用できます。SQLがないため、クエリ自体を実行することはできませんが、データに対してmap/reduce関数を実行できる設計ドキュメントを作成できます。

于 2011-07-09T05:20:04.867 に答える