php - 对所有用户使用相同的 MySQL 链接?

标签 php mysql sql-server database optimization

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

有没有办法始终在服务器上打开ONE MySQL 链接,并让每个用户只使用该链接,而不是为每个用户创建一个新链接?

最佳答案

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


”这里的答案非常简单——效率。如果创建到 SQL Server 的链接的开销很高,则持久连接很好。这个开销是否真的很高取决于许多因素因素。比如,它是什么类型的数据库,它是否与您的 Web 服务器位于同一台计算机上,SQL 服务器所在的计算机的负载情况等等。
最重要的是,如果连接开销很高,持久连接可以为您提供很大帮助。它们使子进程在其整个生命周期内仅连接一次,而不是每次处理需要连接到 SQL 服务器的页面时。这意味着对于打开持久连接的每个 child 都将有自己的开放持久连接到服务器。
例如,如果您有 20 个不同的子进程运行一个与 SQL 服务器建立持久连接的脚本,那么您将有 20 个不同的 SQL 服务器连接,每个子进程一个。 "

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

希望对你有帮助!

关于php - 对所有用户使用相同的 MySQL 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12220359/

相关文章:

PHP 递归目录迭代器

php - 严格标准 :Only variables should be passed by reference is

javascript - 如何在NodeJS中的MySQL查询中增加外部变量值

sql-server - com.microsoft.sqlserver.jdbc.SQLServerException : Cannot open database <database> requested by the login. 登录失败

java - 从 jdbc/SQL Server 2005 读取希腊文本并用 servlet 显示它

c# - 检测 SQL 集群

php - Wordpress:自动更改帖子中的特定 URL

php - Gitignore Laravel 供应商文件夹

java - 如何使用 JDBC 从远程计算机访问 WAMP 数据库?

php - (我的)带有 MAX 和 LEFT JOIN 的 SQL 查询