【问题标题】:Why does SqlAlchemy have connection pooling?为什么 SqlAlchemy 有连接池?
【发布时间】:2016-04-26 07:57:12
【问题描述】:

当 Python 脚本完成执行时,它会从内存 (RAM) 中转储,这与 JRE/Java(例如 Tomcat)不同,应用程序始终驻留在内存中。所以对于 Java webapp,我可以想象连接池是如何帮助的,但是对于 Python(甚至 PHP)它有什么帮助呢?

那么为什么 SqlAlchemy 提供连接池呢?

【问题讨论】:

  • 因为python不限于脚本,它是一种可以用来创建成熟服务器的实际语言……
  • 听起来你还没有开发一个复杂的python应用程序。
  • 如果有帮助,SQLAlchemy 的池本身不会“预热”。它仅在请求时创建初始连接池。因此,如果您的脚本一次只连接一次,则连接池将不会被连接填充,只会填充您使用的连接。

标签: java python database sqlalchemy connection-pooling


【解决方案1】:

您的假设根本不正确。是的,如果您运行一个独立的脚本,它会加载并运行一次,然后从内存中删除——这对于独立的 Java 应用程序也是如此。但是没有一种部署 Python Web 应用程序的方法可以像这样工作。相反,服务器启动一个或多个处理多个 Web 请求的永久进程。代码保持常驻。

【讨论】:

  • 所以如果我的网络服务器是 Apache,那么“httpd”进程就是“永久”进程,对吗?那就是持有连接池的进程?
  • 嗯,Apache通常和mod_wsgi一起使用,也就是持有连接池的进程,但是是的。
猜你喜欢
  • 1970-01-01
  • 2016-11-26
  • 2013-04-03
  • 2010-11-25
  • 1970-01-01
  • 2016-03-19
  • 2012-10-26
  • 2011-06-20
  • 1970-01-01
相关资源
最近更新 更多