我将使用 MongoDB 2.4.x
这意味着我可以使用基于哈希的索引。
我可以将索引设置为shardKey,它将几乎均匀地分布在服务器之间,并且将被均匀地访问。
当我尝试进行范围查询时会出现问题。
我的查询如下
db.feeds.find({ age: { $gte: 20, $lte: 25}}).sort({timestamp: -1}).limit(10)
我想我有两个选择
索引并在 { 年龄:1,时间戳:-1 } 上设置shardKey
对shardKey使用基于散列的索引,使用上述索引进行查询,并将最近的查询结果缓存在内存中(memcached 或 redis),因为范围查询会命中许多分片服务器。
哪一个是处理范围查询的有效策略?或者关于这个问题的任何其他建议?