CNode

巨量数据下的 mongoose 查询

问答
UUSERARSSASion发布于9 年前最后回复9 年前9 回复5110 浏览0 收藏

我现在是 mongoose.find({条件}).sort(time : -1).limit(1).exec() 但是当数据量起来了 find({}) 这一步应该是个优化的地方。 请问各位怎么处理大量数据下的查询呢。

查看回复

回复 (9)

U
USERARSSASion#1·9 年前

我这是查找这个条件最后一次出现的数据。解释一波

Y
ycczkl#2·9 年前

Schema.findOne({}, {}, { sort: { 'created_at' : -1 } }, function(err, post) { XXX });

O
o6875461#3·9 年前

索引优化,分库分表

N
nnliang#4·9 年前

巨量的时候就不要用limit了

U
USERARSSASion#5·9 年前
引用 ycczklSchema.findOne({}, {}, { sort: { 'created at' : 1 } }, function(err, post) { XXX });

@ycczkl findOne ... 还用排序么??就一个数据

U
USERARSSASion#6·9 年前
引用 o6875461索引优化,分库分表

@o6875461 索引只是增快查询速度,数据大的话,找的数据多了就会 out of memory。

U
USERARSSASion#7·9 年前
引用 nnliang巨量的时候就不要用limit了

@nnliang 巨量 用limit 至少还能以点数据测试,不能使用 skip 吧。这个有数据大小限制。

U
USERARSSASion#8·9 年前

统一回复了。 普查、管道操作、maprudece 都试过了。管道操作可以极大的减少查询的数据占的内存,要想查询巨量还是需要找到自己所需要的限制条件。限制不住就需要靠分几段查询了。skip limit

参与回复
登录后即可参与回复。登录