我现在是 mongoose.find({条件}).sort(time : -1).limit(1).exec() 但是当数据量起来了 find({}) 这一步应该是个优化的地方。 请问各位怎么处理大量数据下的查询呢。
回复 (9)
U
我这是查找这个条件最后一次出现的数据。解释一波
Y
Schema.findOne({}, {}, { sort: { 'created_at' : -1 } }, function(err, post) { XXX });
O
索引优化,分库分表
N
巨量的时候就不要用limit了
U
引用 ycczklSchema.findOne({}, {}, { sort: { 'created at' : 1 } }, function(err, post) { XXX });
@ycczkl findOne ... 还用排序么??就一个数据
U
引用 o6875461索引优化,分库分表
@o6875461 索引只是增快查询速度,数据大的话,找的数据多了就会 out of memory。
U
引用 nnliang巨量的时候就不要用limit了
@nnliang 巨量 用limit 至少还能以点数据测试,不能使用 skip 吧。这个有数据大小限制。
U
统一回复了。 普查、管道操作、maprudece 都试过了。管道操作可以极大的减少查询的数据占的内存,要想查询巨量还是需要找到自己所需要的限制条件。限制不住就需要靠分几段查询了。skip limit
N
引用 USERARSSASion@nnliang 巨量 用limit 至少还能以点数据测试,不能使用 skip 吧。这个有数据大小限制。
@USERARSSASion 哦哦 我记错了 是skip不是limit
参与回复
登录后即可参与回复。登录