2012-03-09 14 views
2

できるだけ早く、フィールドchの可能なすべての可能な値の数(エントリのフィールドcに含まれるサブドキュメントのフィールドh)所与のクエリを満たすコレクション)中:{P:[a_int]、R [a_bool]}mongodbのこの別個のコマンドに使用するインデックス

私の最初GESSインデックスであった: {P 1、R:1、 "CH":1}

正しいですか?別個のものが正しく使用されますか?

私はモンゴ2.0.1

EDITを使用しています:私は、クエリの統計情報を取得することができますjira ticketで見つかりました。ただし、レプリカセットで使用されている場合(シャーディングのモンゴからは実行されません)のみ動作します。クエリは、{p:1、 "c.h":1}のインデックスを正しく使用するように見えますので、完全なインデックスを使用しようとします。

EDIT2:完全なインデックスが期待どおりに機能します。

答えて

1

sharded環境でdistinct()が動作しない場合は、 "brute force"アプローチをとることができます。明示的にテストし、その結果を比較したいのインデックスを指定するために使用ヒント():使用するインデックスへと疑問を取り除くだけでなく

http://www.mongodb.org/display/DOCS/Optimization#Optimization-Hint

が、それはまた、しようとするあなたはオプティマイザを待っていないことを意味し新しいクエリプランを作成します(クエリの最初に選択したインデックスをしばらくキャッシュします)。

あなたのシャードキーはここに大きな影響を与えます。そのキーに基づいたデータの配布は、最終的にあなたの制限要因になります。

関連する問題