3

当我使用 PDO 和 MySQL 编写 PHP 代码时,我总是会在需要它们的函数中创建连接,如下所示:

result pseudo_function() {
  create and open connection
  do stuff
  close connection
  return result
}

现在,我开始用 C 编程,我发现指针是一种将整个连接作为参数传递给函数的有趣方式。我想知道在服务整个用户请求之前传递函数之间的连接是否会更好。

澄清一下:对于一个用户请求,可能会调用 1-5 次函数,然后打开数据库、获取数据、执行某些操作、关闭并返回。

如果您保持连接打开,它是否会在性能方面有所不同?

4

3 回答 3

3

最好保持连接打开并对该连接执行 5 次操作,而不是每次都打开一个新连接。

您还可以使用单例存储库模式延迟加载数据库;存储库只打开一次连接,在下次调用时它将返回一个缓存的结果。

于 2012-05-04T17:42:53.393 回答
3

我见过的大多数 PHP 代码的“标准习惯用法”似乎是“打开连接,并保持打开状态”。

php.net 目前似乎已关闭,但这两个链接可能很有趣:

如果您正在运行 Apache,也许 mod_dbd 可能是一个很好的解决方案:

这是关于不关闭连接的含义的很好的讨论:

于 2012-05-04T17:43:33.183 回答
2

如果您使用 PHP 开发 Web 应用程序,通常(我认为是最有效的方式)打开数据库连接一次并在脚本终止时关闭它。在其他事情完成时保持连接打开并不会真正产生任何开销或根本不需要任何操作,但每次都重新连接。

于 2012-05-04T17:42:58.247 回答