为所有用户使用相同的MySQL链接?

时间:2012-08-31 17:55:55

标签: php mysql sql-server database optimization

我的共享服务器限制了PHP与MySQL的并发连接数。有时,当我收到更多流量并且每个人都需要访问数据库时,由于max connection limitation,他们会被拒绝。我希望mysqlp_connect可以解决问题,但显然持久连接不会为所有用户保持一个连接,而是为每个用户打开。

是否总是在服务器上始终打开 ONE MySQL 链接并让每个用户只使用该链接而不是为每个用户创建新链接?

1 个答案:

答案 0 :(得分:0)

我只是从这篇文章中引用一句话,但我建议你阅读这篇文章 在我的情况下,我会创建一个连接并在完成每个操作时丢弃它,因为开销太小而不影响我的任何系统。
在您的情况下,您将不得不查看您的代码并判断这需要多少开销;通常你会对此进行基准测试。


“这里的答案非常简单 - 效率。持久连接是好的,如果创建到SQL服务器的链接的开销很高。这个开销是否真的很高取决于很多因素。比如,它是什么类型的数据库,它是否位于您的Web服务器所在的同一台计算机上,SQL服务器所依赖的计算机的加载方式等等。
最重要的是,如果连接开销很高,持久连接会对您有很大帮助。它们导致子进程在其整个生命周期内只连接一次,而不是每次处理需要连接到SQL服务器的页面时。这意味着对于每个打开持久连接的子进程都将拥有自己的与服务器的开放持久连接 例如,如果您有20个不同的子进程运行与SQL服务器建立持久连接的脚本,那么您将拥有20个与SQL服务器的不同连接,每个子进程一个。 “

来源:http://php.net/manual/en/features.persistent-connections.php

我希望这能帮到你!