MongoDB数组查询,我的表现不好

时间:2015-03-10 06:30:18

标签: performance mongodb

taglist字段是数组数据类型,scorea是int类型: 以下是我的表现测试:

     condition                                                                              qps
     * 1.collection.find().limit(1000).sort(new BasicDBObject("scorea",1))            420
     * 2.dbObj.put("taglist",new BasicDBObject().append("$in",Array("女士","男士")))
     *   val res = collection.find(dbObj).limit(1000)                                 200
     * 3.dbObj.put("taglist",new BasicDBObject().append("$all",Array("女士","男士"))
     *   val res = collection.find(dbObj).limit(1000)                                 200
     * 4.dbObj.put("taglist",new BasicDBObject().append("$all",Array("女士","男士"))
     *   val res = collection.find(dbObj).limit(1000)                                 50

420,200,50是qps计数,性能不好我怎样才能获得更好的性能?

ps:我已经在字段taglist和scorea上创建了一个索引。

1 个答案:

答案 0 :(得分:0)

首先要做的是通过在查询中附加.explain()来查看您的查询是否正在使用索引。

参考文档可在此处找到http://docs.mongodb.org/manual/reference/method/cursor.explain/

如果没有,那么它试图理解为什么不呢。如果是,则看起来需要进一步调整或需要替代索引。