1. 選擇合適的文件系統(tǒng)便于mongodb隨時申請磁盤空間(使用ext4,xfs取代ext3)
2. 包含排序的查詢語句,優(yōu)化的方法是索引中包含排序字段。如果還有$in語句,那么建立索引的時候,排序字段應(yīng)該在$in語句對應(yīng)字段的前面。
a: 聯(lián)合索引
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} 的聯(lián)合索引會比較合適
refer: http://blog.csdn.net/liqfyiyi/article/details/51791233