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上创建了一个索引。
答案 0 :(得分:0)
首先要做的是通过在查询中附加.explain()来查看您的查询是否正在使用索引。
参考文档可在此处找到http://docs.mongodb.org/manual/reference/method/cursor.explain/
如果没有,那么它试图理解为什么不呢。如果是,则看起来需要进一步调整或需要替代索引。