問題タブ [pymongo-3.x]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
203 参照

python - PyMongo Insert ~ 100M レコードの非常に遅いデータベース

MongoDB で非常に遅い挿入 (挿入あたり約 200 秒) を経験していますが、その理由はまったくわかりません。

匿名化されたユーザー名 (int)、匿名化されたコメント ID (int)、およびコメントの CSV ファイルがあります。これらはすべて文字列として読み込まれますが、最初の 2 つのフィールドは問題なく int にキャストできます。

データベースには 1 億レコードのコレクションが含まれており、現在、別のコレクションに書き込まれるコメント ID を使用してユーザーのマッピングを作成しようとしています。1 億のコメントが配布されているユーザーは、およそ 6 万人です。つまり、ユーザーごとに user_id = [comment_id0,...,comment_idN] を構築し、それをデータベースに挿入して、すべてのユーザーのコメントをすばやくフェッチします。

このコードで確認できる唯一の速度低下の原因は、挿入ごとに新しい接続が作成されることです。ただし、1 つの接続を使用して 500 個のドキュメントのバッチを挿入しようとすると (単一ドキュメント挿入と複数ドキュメント挿入の両方を使用)、さらに時間がかかります。このコードを順番に実行しています。

誰かがより良い提案をしていますか?

MongoDB バージョン: v3.4.9

PyMongo バージョン: 3.5.1

Python バージョン: 3.5.3

OS: Ubuntu 17.4