如何使用python增加Mongodb的连接池大小

2024-05-15 22:43:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Mongodb作为项目的数据库,每秒向Mongodb发送1000个请求。我观察到排在前面的请求比排在最后的请求工作得更快。我担心如果增加对mongodb的调用会消耗更多的时间。我想我可以用游泳池连接。如果是的,让我知道我们是如何使用Python。如果不建议我有其他选择

下面是一些查找字段snippetid的文档的结果,我有索引

一些提前发送的请求

db.collection.find({'snippetid': '55a0466a414353801e4ff16a'})

Time Taken 0.00563097000122

db.collection.find({'snippetid': '559417cd5217d572fa120a21'})

Time Taken 0.00330901145935

队列中最后一个请求

^{pr2}$

Tags: 项目文档数据库dbtimemongodb时间find
2条回答

嘿,你可以用pymongo在python中增加池大小。 语法

from pymongo import MongoClient
client = MongoClient('host', port, maxPoolSize=200)

有关详细信息,请查看link

来自MongoClient的pymongo文档:

maxPoolSize (optional): The maximum number of connections that the pool will open simultaneously. If this is set, operations will block if there are maxPoolSize outstanding connections from the pool. Defaults to 100. Cannot be 0.

并签名:

 pymongo.mongo_client.MongoClient(
     host='localhost', port=27017, document_class=dict,
     tz_aware=False, connect=True, **kwargs)

因此,在该调用中使用所需的值添加maxPoolSize将设置连接池的大小。在

注意,“没有什么是免费的”,这对客户机和服务器都是一个明显的成本,以维护大量的连接。对于高请求负载,您可以考虑其他处理方法,或者至少平衡负载。在

相关问题 更多 >