如何在php中保持mysql连接存活

时间:2011-07-26 13:46:22

标签: php mysql

我有一个脚本循环遍历表和字段进行查找和替换。该脚本大约需要4分钟才能完成。该数据库约为1.5GB。

问题是我在某种程度上失去了数据库连接。我正在使用ADODB连接到mySQL。数据库连接在开始时打开,并在脚本的整个持续时间内保持打开状态。

使用以下代码时问题消失了:

if ($rowCount % 100000 == 0) {
    $db->Execute('USE ' . $db->database);
}

我不是这个解决方案的粉丝!

任何有助于我不再挠头的建议/解释/讨论都将不胜感激!

4 个答案:

答案 0 :(得分:1)

使用mysqli::ping()确定连接是否存在。如果没有再连接。

  

检查与服务器的连接是否正常。如果它已经消失了   down,全局选项mysqli.reconnect自动启用   尝试重新连接。

     

此功能可供长时间闲置的客户端使用   同时,检查服务器是否已关闭连接和   必要时重新连接。

答案 1 :(得分:0)

您可以使用mysql_pconnect();或同等地使用ADODB $conn->PConnect();来创建持久连接

答案 2 :(得分:0)

您正在寻找的词语是“坚持不懈”,您正在寻找的答案就在这里:

mysqli persistent connection

答案 3 :(得分:0)

您可以使用以下方法之一与mysql建立持久连接:

Mysqli

尝试使用前缀为mysqli_connect()的{​​{1}}作为主机名。

PDO

尝试将p:PDO::__construct()用作驱动程序选项。