PyMongo:我应该使用单个客户端还是多个客户端?

lai*_*e9m 5 mongodb pymongo

问题很简单:我是否应该将所有操作保留为一个MongoClient?单个客户端还是多个客户端比另一个更好?

Mar*_*erg 9

MongoClient其实维护一个连接池。因此,拥有多个客户并没有任何优势。恰恰相反,由于新客户端必须首先连接到 MongoDB,因此每次创建新客户端时都需要三向握手和其他开销。

由于多个客户端仅对单个应用程序有不利影响,因此答案是:仅创建一个客户端并在需要建立连接的任何地方使用它。

  • 我只能想到一种您需要多个 MongoClient 的情况:当您有一个应用程序连接到多个 MongoDB 时。 (3认同)
  • @Philipp 这取决于。多个应用程序甚至可以使用同一个连接池,前提是数据库身份验证不是问题。但总的来说,你是对的。 (3认同)
  • 多处理时您还应该使用多个客户端:http://api.mongodb.com/python/current/faq.html#using-pymongo-with-multiprocessing (3认同)