提高性能,了解MongoDB游标的IOPS和用法
我正在努力提高使用MongoDB的代码的效率和速度。代码是用Python编写的,并使用提高性能,了解MongoDB游标的IOPS和用法,mongodb,cursor,pymongo,Mongodb,Cursor,Pymongo,我正在努力提高使用MongoDB的代码的效率和速度。代码是用Python编写的,并使用pymongo模块 目前,我的代码中有一个部分接收可能从数据库中删除的值列表,并验证实际删除的值: verified_removed = [] for value in possibly_removed: if db.items.find_one({"name" : value}) is None: verified_removed.append(value) 现在
pymongo
模块
目前,我的代码中有一个部分接收可能从数据库中删除的值列表,并验证实际删除的值:
verified_removed = []
for value in possibly_removed:
if db.items.find_one({"name" : value}) is None:
verified_removed.append(value)
现在我知道我可以把它改成这样:
still_exist = list(db.items.find({"name" : {"$in": possibly_removed}))
verified_removed = [val for val in possibly_removed if val not in still_exist]
但有一件事我不确定:find方法创建一个可以迭代的游标。但是对于我的每个测试值,光标是否比调用
find\u one
更有效?或者在这两种情况下,我的眼压会保持不变吗
光标是如何工作的?当必须每~1分钟迭代/更新数据库中的许多对象时,提高性能的最佳方法是什么?find()
一次抓取一批,因此在大多数情况下,它比多次调用find_one()
更有效。文档中有更多的细节
如果要提高性能,请考虑在正在筛选的字段上添加索引。也请查收