使用pymongo从mongoDB表中查询占用大量内存

时间:2018-04-09 11:11:08

标签: python mongodb pymongo

我是mongo db的新手。

我有一个数据库设置和一个大约有2000万行的表。

id source dest值    1 12 123 abc    2 10 435 mmn

等等。

我尝试使用python中的pymongo包连接它。

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['test'] #name of db
stos_table = db['stos']  #stos is table_name which has 20 million rows

当我运行查询时:

result = stos_table.find_one({'source':10,'dest':435})

我的内存使用量增加了37%(我的内存大约需要6gb) 请说明原因 ???

(我猜它把整个表加载到内存中)

此外,查询执行需要10秒才能运行。

我实际上想要的东西就像我的负载应该在数据库而不是内存上。

有没有办法可以在不加载内存中的整个数据的情况下运行类似的查询,并以毫秒为单位得到结果?

mongodb可以吗?

1 个答案:

答案 0 :(得分:0)

根据您对数据的处理方式。 尝试使用mongoDB聚合。但是,如果您只需要查询,而不对数据执行任何操作,我认为您无法将所有数据保存在变量中。