ReadPreference
レプリカセットから読み取るためのストラテジーに設定します。受容される値は、primary、primaryPreferred、secondary、secondaryPreferred、およびnearest です。
Possible Values
primary, primaryPreferred, secondary, secondaryPreferred, nearestデータ型
string
デフォルト値
"primary"
解説
このプロパティを使用すると、プライマリメンバー以外のレプリカセット内のメンバにクエリを実行できるようになります。受容される値は次のとおりです。
- primary:すべてのSELECT クエリが、プライマリサーバーに対して実行されます。
- primaryPreferred:プライマリサーバーが利用できない場合、SELECT クエリはセカンダリサーバーに対して実行されます。
- secondary:すべてのSELECT クエリは、セカンダリサーバーに対して実行されます。
- secondaryPreferred:セカンダリサーバーが利用可能な場合、セカンダリサーバーにSELECT クエリが実行されます。そうでない場合は、プライマリサーバーに対して実行されます。
- nearest:SELECT クエリは、レイテンシが最小のサーバーに対して実行されます。
ReadPreference を使用するタイミング
このプロパティを設定すると、書き込み操作がセカンダリマシンにまだレプリケートされていない場合、最新の変更がクエリ結果に反映されないことがあります。 ReadPreference を使用すると、本製品 が古いデータを返すリスクはありますが、次のことを達成できます。
- フェイルオーバークエリの設定:プライマリサーバーが利用できない場合、このプロパティを"primaryPreferred" に設定すると、オンラインでクエリを実行し続けることができます。
- 地理的に分散したレプリカセットに対してより高速にクエリを実行:デプロイメントで複数のデータセンターが使用されている場合、ReadPreference を"nearest" に設定すると、本製品 はレイテンシが最小のレプリカセットメンバーに対してSELECT クエリを実行するためクエリの処理速度が向上します。
本製品 にSELECT ステートメントをセカンダリサーバーに実行させる場合は、SlaveOK も設定する必要があります。そうしないと、本製品 はエラー応答を返します。