用mongodb复合索引排序

时间:2013-04-08 11:30:41

标签: performance mongodb sorting

我正在考虑使用mongodb并从mysql中移动我的数据,我将使用mongodb的嵌入式数组,我添加了100.000个示例文档,这里是文档的模式和一些示例数据

array(
"a" => array("a","c","d"),
"b" => 200
)

array(
"a" => array("b","e","d"),
"b" => 300
)

array(
"a" => array("f","c","d"),
"b" => 400
)

array(
"a" => array("o","l","g"),
"b" => 500
)

array(
"a" => array("x","c","b"),
"b" => 600
)

一个示例查询就是这样,以获得200到500之间的所有x记录,

array("a" => "x", "b" => array('$gte' => 200, '$lte' => 500))

当我将(a,b)索引在一起并将其限制为10时,我得到“nscanned”和“n”10这是完美的。但是,正如我从文章中读到的那样,跳过成本很多,所以我必须根据他们的“_id”对它们进行排序,然后使用'$ gt'对下一个文档进行分页,在此之后我将(a,b,_id)索引在一起,我尝试了反向_id复合指数组合。但是(a,_id(-1),b)给了我最好的结果,但是nscanned,仍然太多了,我从mongodb文档中读到它并且它说如果你把排序字段放在复合索引中它会很好,但它确实不好。我该怎么办呢?谢谢

0 个答案:

没有答案
相关问题