MongoDB 2.4.x を使用します
これは、ハッシュベースのインデックスを使用できることを意味します。
インデックスをshardKeyとして設定すると、サーバー間でほぼ均等に分散され、均等にアクセスされます。
範囲クエリを実行しようとすると、問題が発生します。
私のクエリは以下のようになります
db.feeds.find({ age: { $gte: 20, $lte: 25}}).sort({timestamp: -1}).limit(10)
私には2つの選択肢があると思います
インデックスを作成し、shardKeyを { age: 1, timestamp: -1 } に設定します
shardKeyにはハッシュベースのインデックスを使用し、クエリには上記のインデックスを使用し、最近のクエリ結果をメモリ (memcached または redis) にキャッシュします。これは、範囲クエリが多くのシャード サーバーにヒットするためです。
範囲クエリを処理するための非常に効率的な戦略はどれですか? または、この問題に関する他の提案はありますか?