假设我有一些 Perl 代码,每次命中时都会增加数据库特定行中的一列,并且我预计它会非常频繁地命中,因此我想使用 FCGI 对其进行优化。现在,我基本上将大部分代码包装在这样的内容中:
while (FCGI::accept() >= 0) {
[code which currently creates a db connection and makes calls through it]
}
我想知道是否最好将数据库连接(我的 $dbh = DBI->connect(etc))放在 FCGI 循环之外,以便脚本保持连接处于活动状态,或者我仍然会获得 FCGI 在速度方面的优势& 资源,将其留在循环中?
bmdhacks 是对的,如果您使用 MySQL 或 PostgreSQL,那么这并不重要,因为连接非常便宜。但无论您使用哪种数据库,都可以通过使用持久连接来提高速度。
但是,如果您确实决定使用持久连接,则需要担心连接超时。这些将在程序生命周期内的任何时间发生,具体取决于您的服务器设置和您获得的流量。ping()
是你的朋友吗?如果您需要更多帮助,请查看如何Apache::DBI
可以。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)