慢速mongodb查询
我收集了约300000份文档,需要进行约150000次查询。我有矩阵A_B(150000行,A列,B列),我需要查询每行中的B条目,找到与此条目关联的文档及其值“C_id”。然后我跟踪矩阵A_C(150000行,A列,C列)中的所有A值和关联的C值。 目前,这需要一个多小时才能运行,速度似乎慢得离谱。你知道为什么这么慢吗?每次,游标都应该返回一个文档慢速mongodb查询,mongodb,performance,numpy,mongodb-query,Mongodb,Performance,Numpy,Mongodb Query,我收集了约300000份文档,需要进行约150000次查询。我有矩阵A_B(150000行,A列,B列),我需要查询每行中的B条目,找到与此条目关联的文档及其值“C_id”。然后我跟踪矩阵A_C(150000行,A列,C列)中的所有A值和关联的C值。 目前,这需要一个多小时才能运行,速度似乎慢得离谱。你知道为什么这么慢吗?每次,游标都应该返回一个文档 client = pymongo.MongoClient() db = client.dataBases collection = db.coll
client = pymongo.MongoClient()
db = client.dataBases
collection = db.collection
A_B = np.loadtxt('A_B.txt')
A_C = np.zeros(A_B.shape)
for r in range(0, A_B.shape[0]):
A = A_B[r, 0]
B_r = A_B[r, 1]
C = 0
cursor = collection.find({'C_id': B_r})
for i in cursor:
C = i['n_id']
A_C[r, :] = np.asarray([A, C])
np.savetxt('A_C.txt', A_C.txt)
这些集合有什么索引?我让mongodb自动生成ID。这可能是个问题吗?这通常不应该是个问题。这是我应该期望的速度吗?有很多因素会影响性能,不仅仅是数据库本身。你可以从阅读开始。首先,您应该在集合上为字段
C_id
设置索引,并确保它很好地适合RAM。如上所述,如果您可以发布示例文档和变量的内容,这将有所帮助。另见相关文件