これは、実行しているクエリの種類によっても異なります。以下のポイントがあるかどうかを確認してください-
- 集計クエリはたくさんありますか?どのようなコレクション構造がありますか。つまり
- ネストされた配列はたくさんありますか?
- それは単一のインスタンスまたはレプリカセットですか?読み取りと書き込みを含むレプリカセットを別のノードに配置してみてください。
- クエリは複数のコレクションからデータを返しますか?
- インスタンスがページ障害を起こしていることを確認して、操作の割合を確認しますか?
- ロック/キューが高い期間にnscannedまたはscanAndOrderが高い操作がないかログを確認し、それに応じてインデックスを作成します。
- $ all、$ push / $ pop / $ addToSetなどのCPUを集中的に使用する演算子、および大きなドキュメントの更新、特に大きな配列(または大きなサブドキュメント配列)のドキュメントの更新についてクエリを確認します。
- データベースの書き込みが多い場合は、データベースごとに一度に書き込みできるCPUは1つだけであることに注意してください(書き込みロックを保持しているスレッドがあるため)。そのデータの一部を独自のデータベースに移動することを検討してください。
これは、時間の経過とともにパフォーマンスを低下させるいくつかのことです。ここでは最も一般的な使用例について説明しましたが、