1. 索引
mongodb索引用的是 B-tree,所以
- skip 操作性能不高,时间复杂度为 O(M) ,M 为要跳过的数量。所以当 M 很大时,性能很低。
2. 聚合操作的 stage 顺序
索引为 index(id:1)
db.getCollection("forums").aggregate([
{
"$sort": { id: 1 }
},
{
"$project": {
"_id": 0.0,
"id": 1.0,
"title": 1.0,
"content": 1.0,
"forum_picture": 1.0,
"created_time": 1.0
}
},
{
"$limit": 10
},
]);
本地测试耗时:1ms
db.getCollection("forums").aggregate([
{
"$project": {
"_id": 0.0,
"id": 1.0,
"title": 1.0,
"content": 1.0,
"forum_picture": 1.0,
"created_time": 1.0
}
},
{
"$sort": { id: 1 }
},
{
"$limit": 10
},
]);
本地测试耗时:93ms
网友评论