2024-05-23 04:59:18 发布
网友
我不确定我是否理解数据库连接池的用例(例如:psycopg2.pool和mysql.connector.pooling)在python中。在我看来,在python中,并行性通常是使用多进程而不是多线程方法来实现的,因为GIL的存在,在多进程的情况下,这些池并不是很有用,因为每个进程都会初始化自己的池,一次只运行一个线程。这是对的吗?当使用多个进程时,是否有共享数据库连接池的策略,如果没有,池的用处是否仅限于多线程python应用程序,或者是否有其他场景可以使用它们?在
基思
你在正确的轨道上。正如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中的示例池解决方案。这篇文章还讨论了如果您的应用程序变为多线程的话,数据库池的局限性:
关于在python中实现db pooling,如“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.
如果你有任何问题,请告诉我!在
基思
你在正确的轨道上。正如S.O的帖子“Accessing a MySQL connection pool from Python multiprocessing”中提到的:
查看另一篇S.O文章,“What is the best solution for database connection pooling in python?”,它包含了一个python中的示例池解决方案。这篇文章还讨论了如果您的应用程序变为多线程的话,数据库池的局限性:
^{pr2}$关于在python中实现db pooling,如“Application vs Database Resident Connection Pool”中所述,如果您的数据库支持它,最好的实现将包括:
如果你有任何问题,请告诉我!在
相关问题 更多 >
编程相关推荐