Skip to main content
 首页 » 编程设计

python之Django (postgresql-psycopg2) 连接池 : Simple vs Threaded vs Persistent ConnectionPool

2025年05月04日11txw1958

我正在使用 postgresql 数据库后端查看要在我的 Django 应用程序中使用的数据库连接池实现,并遇到了这个为 psycopg2 实现的最新包装器包 -

https://pypi.python.org/pypi/django-db-pool

psycopg2 本身提供不同类型的池,即简单(跨单个线程共享)、线程(跨线程共享)和持久(严格来说每个线程一个持久连接),根据此处的文档 - http://initd.org/psycopg/docs/pool.html .

从源代码可以看出,djang-db-pool 似乎正在使用 ThreadedConnectionPool 实现。

目前,在我的 Django 应用程序实现中,每个请求都可以产生多个线程,这意味着要处理多个并发的 Django 请求,ThreadedConnectionPool 是正确的方法吗?

有没有其他人有使用这个包(django-db-pool)或 psycopg2 连接池和 Django 的经验,并且可以对此有所了解?

请您参考如下方法:

作为您链接到的文档,ThreadedConnectionPool 是您想要用于多线程应用程序的那个,Django 是(或者可以是,这取决于您如何配置您的网络服务器/WSGI 接口(interface)。)我写了 django-db-pool,所以我不是一个公正的消息来源,但也许你可以解释你的请求流程,这样我可以提供一些额外的建议?