打开和关闭与db的连接或保留它

tek*_*tiv 2 php database

我已经看到很多关于.NETC#应用程序的答案,但我没有找到我在寻找关于Web的答案(或者我没有很好地搜索并为此道歉).

我的问题是在查询期间与数据库的连接:我应该打开和关闭每个查询我正在进行的连接,还是应该创建一个并保持这么长时间?
我想这是第一个,但我想要一些关于性能安全性之间差异的信息.

此外,这足以关闭连接:

$dbh = new PDO('mysql:host=localhost;dbname=foo', '', '')
// queries
$dbh = null;
Run Code Online (Sandbox Code Playgroud)

N.B*_*.B. 6

.如果你想要表现,你不应该关闭连接.通过手动关闭连接,您将对安全性产生影响.关闭连接会使事情变慢.

我将根据你的性能标准编写其余的答案,我会假设你正在通过php服务php-fpm(如果没有,你应该).

关闭和打开连接会带来与MySQL握手和打开文件描述符的开销.如果您有很多请求,此过程将影响性能,无法获益.但是,使用持久连接可以提高性能.

原因如下:一旦php脚本结束,php将保持连接打开.进入的下一个请求将使用已建立的连接 - 您可以避免握手,tcp开销以及什么不是.

摘自php手册:

许多Web应用程序将受益于与数据库服务器的持久连接.持久连接不会在脚本末尾关闭,而是在另一个脚本使用相同凭据请求连接时进行高速缓存和重新使用.持久连接缓存允许您避免每次脚本需要与数据库通信时建立新连接的开销,从而产生更快的Web应用程序.

- >向下滚动到示例4,看看如何实现它.