1

MongoDB データベースにmongoimportいくつかのファイルをインポートするために使用しています。jsonそれぞれ約 2M のドキュメントを含む 5 つのファイルがあり、コレクションには 4 つの通常のインデックスと 2 つのマルチキーがあります。

最初のファイルのインポートを開始すると、1 秒あたり最大 500 個のドキュメントが挿入されますが、しばらくするとパフォーマンスが低下し始めます。現在、3 番目のファイルをインポートしていますが、スループットは 1 秒あたり 50 ドキュメント未満です。コレクションのサイズが大きくなると、インポートが低下するようです。どうしたの?どうすればこれを改善できますか?

4

1 に答える 1

2

この場合はそれが理由ではないかもしれませんが、コレクションへの挿入だけでなくインデックスへの挿入も行うため、書き込みに関してはインデックスにいくらかのオーバーヘッドがあります。ドキュメントを更新して割り当てられたサイズよりも大きくなると、パフォーマンスがさらに低下します。このような場合、このドキュメントを含むすべてのインデックスを更新する必要があります。

コレクションに 6 つのインデックスがあるため、挿入されるドキュメントごとに 6 つのインデックスを更新する必要があります。これは、の実効速度にいくらか影響します。mongoimport

インデックスのないコレクションにインポートし、事後にインデックスを作成することで、これをテストできます。

インデックスの書き込みへの影響の詳細については、こちらを参照してください。

于 2012-11-23T02:22:05.777 に答える