首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解python中的DB连接池

理解python中的DB连接池
EN

Stack Overflow用户
提问于 2014-10-08 21:33:39
回答 1查看 5.4K关注 0票数 6

我不确定我是否理解python中DB连接池的用例(例如:心理学、2、池和mysql.connector.pooling)。在我看来,在python中,由于GIL,通常使用多进程而不是多线程方法来实现并行性,而在多进程情况下,这些池并不十分有用,因为每个进程都将初始化自己的池,并且一次只运行一个线程。这是正确的吗?在使用多个进程时,是否存在共享DB连接池的策略,如果没有,池的有用性是否仅限于多线程python应用程序,或者是否存在其他可以使用它们的方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 22:06:38

基思

你走在正确的轨道上。正如S.O帖子"Accessing a MySQL connection pool from Python multiprocessing“中提到的,:

代码语言:javascript
复制
Making a seperate pool for each process is redundant and opens up way
too many connections.

查看另一个S.O帖子"What is the best solution for database connection pooling in python?",它包含python中的一个示例池解决方案。这篇文章还讨论了如果应用程序变成多线程的话,db池的局限性:

代码语言:javascript
复制
Making your own connection pool is a BAD idea if your app ever decides to start using 
multi-threading. Making a connection pool for a multi-threaded application is much 
more complicated than one for a single-threaded application. You can use something 
like PySQLPool in that case.

在python中实现db池方面,正如"Application vs Database Resident Connection Pool“中提到的,如果您的数据库支持它,最好的实现将包括:

代码语言:javascript
复制
Let connection pool be maintained and managed by database itself 
(example: Oracle's DRCP) and calling modules just ask connections from the connection 
broker described by Oracle DRCP.

如果你有任何问题请告诉我!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26266842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档