假设单个文档类型:
{
"_id" : ObjectId("5a19403b421aa92332bc2b32"),
"id" : "95957f4a9eab11e787f1509a4c4be0cd",
"incre" :1
"city" "城市名称"
}
数据量,9千万,如何快速取出所有,city为北京市的所有id。
其中,incre为自增id。
我使用如下方法,100个线程,一次根据incre取出20条数据,从1开始轮询9千万的数据:
find({"$and":[{"city":"北京市"},{"incre":{"$gte":50,"$lt":70}}]})
假设查询,1秒,100线程,2000条数据耗费1秒。
9千万数据,需要750个小时。
有没有更快的方法?
求助大神。
谢了。
--------大佬都去哪里了---------
经验上讲,我会觉得直接
find({"city":"北京市"})可能还更快,不妨自己比较一下。这里使用多线程会使复杂度大增,而实际带来的价值很有限甚至反作用,如果你对多线程的掌握还不够炉火纯青的话。