MongoDB は、非シャード レプリカ セットまたはシャードとしてセットアップできることを理解しています。Sharded は、非常に大きなデータセットのスケーラビリティによって使用されます。
質問は、Sharded と 3 つの mongodb ノードの基本的なレプリカ セットを使用する必要があることをどの時点で知っていますか?
MongoDB は、非シャード レプリカ セットまたはシャードとしてセットアップできることを理解しています。Sharded は、非常に大きなデータセットのスケーラビリティによって使用されます。
質問は、Sharded と 3 つの mongodb ノードの基本的なレプリカ セットを使用する必要があることをどの時点で知っていますか?
いつものように、それは依存します。データベースが大きすぎて 1 台のマシンの RAM に完全に保持できない場合は、シャーディングを検討してください。いつものように、確実に知る最善の方法は、特定の状況/アーキテクチャ/使用パターンでテストし、自分で確認することです。
データセットのサイズに加えて、考慮に入れることができるいくつかのパラメータがあります。
@gkamal が述べたように、データ ストアが 1 つのボックス サイズの 60 ~ 70% に達し始め、負荷が主に書き込み量が多い場合は、シャーディングを検討する必要があります。
シェーディングされていない 3 つのレプリカ セットとシャードされたインスタンスの主な違いは、レプリカ セットが書き込み負荷をスケーリングしないことです。プライマリ サーバーは、ロック オーバーヘッドのため、プライマリ書き込みのボトルネックになります。一方、シャーディングが正しく行われた場合、各シャードが複数の分離されたインスタンスに分割されるため、書き込み/読み取りの負荷が軽減されます。