Python中的持久MySQL连接

Ale*_*lex 2 python mysql web-services

PHP提供了mysql_connect()和mysql_pconnect(),它们允许创建临时和持久数据库连接.

Python中是否有类似的功能?将使用它的环境是带有FastCGI的lighttpd服务器.

谢谢!

Tor*_*amo 5

如果你正在使用FastCGI,则不需要"持久连接",因为如果你创建一个连接,它默认是持久的,因为FastCGI python不是基于请求的,而是在不断运行.

这就是FastCGI在python中的工作方式,简而言之:

1. Run startup code
2. Run request function
3. Wait for new request, then goto step 2.   
Run Code Online (Sandbox Code Playgroud)

在PHP/FastCGI中,这是不同的,因为只有PHP引擎一直在加载,而PHP脚本本身是为每个请求执行的.

1. Start PHP Engine
2. Run script
3. Wait for new request, then goto step 2.
Run Code Online (Sandbox Code Playgroud)

所以不同的是,在Python中你可以定义自己的初始化.这就是你建立MySQL连接的地方.:)

  • 即使您是单个FastCGI(或其他持久性)实例,您仍然需要一种非常基本的连接池形式.否则,如果您没有收到几个小时的请求,MySQL连接将过期,并在您尝试使用它时给您一个例外.任何通常的数据访问层都会免费为您提供连接池,但如果您使用原始DB-API,则可能需要一些手动池. (4认同)