我不确定我是否理解python中数据库连接池的用例(例如:psycopg2.pool和mysql.connector.pooling)。在我看来,并行性通常是在python中使用多进程而不是多线程方法实现的,因为GIL和多进程情况下这些池并不是非常有用,因为每个进程都会初始化它自己的池并且一次只能运行一个线程。它是否正确?在使用多个进程时是否有共享数据库连接池的策略?如果不是,限制于多线程Python应用程序的池化的有用性,还是有其他场景可以使用它们?了解Python中的数据库连接池
1
A
回答
3
Keith,
你在正确的轨道上。正如S.O邮报“Accessing a MySQL connection pool from Python multiprocessing”中提到:
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-池,如果你的应用程序要成为多线程:
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,”如果你的数据库支持,最好的实施将涉及:
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.
如果您有任何问题,请让我知道!
相关问题
- 1. JBoss数据库连接池
- 2. 数据库连接池
- 3. Standalone Axis2中的数据库连接池?
- 4. 了解与h2数据库的连接
- 5. 了解数据库连接java eclipse&db2
- 6. Django的:池MySQL数据库连接
- 7. 的Java-EE数据库连接池耗尽了最大
- 8. 连接池显示数据库中的INACTIVE连接
- 9. 了解Tomcat连接池设置
- 10. Python的数据库连接
- 11. 从JNDI连接池中检索数据库连接设置
- 12. 负载平衡数据库连接池
- 13. 红宝石数据库连接池
- 14. 连接池与Access数据库
- 15. 选择一个数据库连接池
- 16. django mysql数据库连接池
- 17. 何时使用数据库连接池
- 18. Play Framework:数据库连接池关闭
- 19. 数据库连接池(使用Java)
- 20. jetty mysql数据库连接池
- 21. 数据库连接池是否重要?
- 22. 设计数据库连接池
- 23. ServiceStack OrmLite:MySQL数据库连接池
- 24. 连接到很多数据库时的django和数据库连接池
- 25. 了解数据池属性
- 26. JVM数据源调整tomEE连接池中的空闲数据库连接
- 27. 连接池:检索丢失的数据库连接
- 28. 连接池误解?
- 29. Python MySQL连接池
- 30. 节点js中的数据库池中未定义的“连接”
感谢您的解释 – Keith 2014-10-09 20:59:39