【问题标题】:Why doesn't django support connection pool?为什么django不支持连接池?
【发布时间】:2011-05-31 13:41:49
【问题描述】:

我想知道为什么 django 不支持连接池?我无法忍受每个请求都打开/关闭连接。我试图解决它,但没有一个好的解决方案。

我尝试使用mysql_pool,但失败了:

TypeError: init() takes exactly 1 argument (3 given) 

【问题讨论】:

  • __init__ 只需要 1 个参数,而你传递了 3 个参数,为什么?
  • 您是否将 django 作为 CGI 运行(而不是像 WSGI 或 mod_python 之类的东西)?

标签: python django


【解决方案1】:

已编辑:查看Django persistent database connection(1.6 中引入的功能)。

持久连接避免了在每个请求中重新建立与数据库的连接的开销。它们由定义连接的最大生命周期的 CONN_MAX_AGE 参数控制。可以为每个数据库独立设置。

【讨论】:

  • 会的。 Django 在请求结束时显式关闭连接。
  • @Suor:确实会 - 让我感到羞耻。
【解决方案2】:

这里讨论一下为什么 django 没有在核心中添加池: https://groups.google.com/forum/#!topic/django-developers/NwY9CHM4xpU

一般来说这是因为第三方应用程序(例如 pgbouncer)做得更好。

【讨论】:

  • 很棒的答案。顺便说一句Posgres wiki 告诉:“一些客户端软件(如 Java EE / JPA / Hibernate)总是对连接进行池化,因此 PostgreSQL 中的内置池化将是一种浪费的复制。”
猜你喜欢
  • 2019-08-04
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
  • 2017-11-22
  • 2020-08-20
  • 2013-10-14
相关资源
最近更新 更多