1. 选择合适的文件系统便于mongodb随时申请磁盘空间(使用ext4,xfs取代ext3)
2. 包含排序的查询语句,优化的方法是索引中包含排序字段。如果还有$in语句,那么建立索引的时候,排序字段应该在$in语句对应字段的前面。
a: 联合索引
db.comments.find({ tags :'mongodb'}).sort({ created_at : -1});
db.comments.ensureIndex({tags :1, created_at : -1});
b: 排序与选择列
1. 排序的列一定要在索引的最后。
好的:
find(a=1).sort(a)
find(a=1).sort(b)
find(a=1, b=2).sort(c)
不好的:
find(a=1).sort(c)
即使c是索引的最后一列,如果a列是所使用的最后一列,你只能通过a或者b列进行排序。
c:
MongoDB's $ne 或者$nin 操作在索因伤是无效的。
d: $in操作和排序同时存在,事情完全不一样了
db.collection.find({"country": {"$in": ["A","G"]}}).sort({"carsOwned":1})
db.test.find({a:1,b:{$in:[1,2]}}).sort({c:1})
那么可能建立 {a:1, c:1, b:1} 的联合索引会比较合适
refer: http://blog.csdn.net/liqfyiyi/article/details/51791233