php - MySql 和 ADODB5 - 最大连接数

标签 php mysql caching adodb

下面是一个 PHP 代码示例,用于连接到 mysql 并使用 adodb 执行选择查询:

include('adodb.inc.php');    # load code common to ADOdb
$db = &ADONewConnection('mysql'); 
$db->PConnect("localhost", "root", "password", "database");
$recordSet = &$conn->Execute('select * from products');
if (!$recordSet) 
         print $conn->ErrorMsg();
else
while (!$recordSet->EOF) {
         print $recordSet->fields[0].' '.$recordSet->fields[1].'<BR>';
         $recordSet->MoveNext();
}

$recordSet->Close(); # optional
$conn->Close(); # optional
?>

我必须使用

$db = &ADONewConnection('mysql'); 
$db->PConnect("localhost", "root", "password", "database");

$recordSet->Close(); # optional
$conn->Close(); # optional

每次我想进行查询以确定是否达到 max_connection 的错误?

当 1000 个或更多用户通过 MySQL 的 max_connection = 100 连接到我的网站时,我该如何管理?

最佳答案

当达到最大连接数时,你的$db->PConnect应该抛出异常或者返回错误代码(我对这个驱动不太了解,请查看man页)。您必须注意此错误并在出现错误时采取相应措施。通常,等待几秒钟,然后重试几次,然后再向用户返回错误。

现在,max_connection并发 连接数的限制。连接到您的应用程序的 1000 个用户(希望)不会同时运行查询,因此您应该暂时安全。在脚本执行结束时,所有连接都将关闭(或在您的情况下返回到池),并可供其他用户使用。因此,除非 100 个用户实际上同时单击应用程序中的某个链接,否则您不会达到 100 个限制。

但是您应该编写脚本,以便它们在执行过程中尽可能晚地打开(或获取)连接,并尽早关闭(或释放)连接。这样,连接保持的时间尽可能短,从而不太可能达到限制。

现在,如果您确实达到了限制,那么除了增加限制之外您别无选择。唯一的解决方法是搁置超出的连接请求(正如我在第一段中建议的那样)。

关于php - MySql 和 ADODB5 - 最大连接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993493/

相关文章:

asp.net - 使用 IIS8.5 的浏览器缓存,我做得对吗?

css - Base64编码缓存

php - 将 mysql_query() 更改为 MySQLi 或 PDO 或更安全的方法的简单方法?

php - 在 Yii 中包含外部库

php - 在防火墙后连接 MySQL 数据库

PHP输出单引号和双引号作为输入元素的值

javascript - 如何使用 firefox 在 ssl 中缓存 javascript?

php - 如何将二进制(blob)数据从 mysql 传递到 imagejpeg 以进行文件保存?

php - 显示数据库中的类别

php - 新的 mysqli 连接在我的 Cpanel 中不起作用,但在我的计算机中起作用