セカンダリから読み取る場合は、読み取り設定> 次のいずれかに:
-
secondaryPreferred
-ほとんどの場合、操作はセカンダリメンバーから読み取られますが、使用可能なセカンダリメンバーがない場合、操作はプライマリメンバーから読み取られます。 -
secondary
-すべての操作は、レプリカセットのセカンダリメンバーから読み取られます。
nearest
から読み取る 例のように、ping時間(プライマリまたはセカンダリのいずれか)によって最も近いメンバーを選択します。
警告
primary
以外の読み取り設定を使用する場合 、アプリケーションロジックに影響を与える可能性のある結果整合性の潜在的な問題に注意する必要があります。たとえば、セカンダリから読み取っている場合、プライマリに変更があり、そのセカンダリにまだ複製されていない可能性があります。
セカンダリから読み取る際の一貫性の強化が懸念される場合は、レプリカセットに関する懸念事項を書く ドキュメント。
セカンダリはプライマリと同じデータを書き込む必要があるため、アプリケーションが非常に大量に読み取られるか、結果整合性が得られない限り、セカンダリからの読み取りでパフォーマンスが向上しない場合があります。