我有一个脚本循环遍历表和字段进行查找和替换。该脚本大约需要4分钟才能完成。该数据库约为1.5GB。
问题是我在某种程度上失去了数据库连接。我正在使用ADODB连接到mySQL。数据库连接在开始时打开,并在脚本的整个持续时间内保持打开状态。
使用以下代码时问题消失了:
if ($rowCount % 100000 == 0) {
$db->Execute('USE ' . $db->database);
}
我不是这个解决方案的粉丝!
任何有助于我不再挠头的建议/解释/讨论都将不胜感激!
答案 0 :(得分:1)
使用mysqli::ping()确定连接是否存在。如果没有再连接。
检查与服务器的连接是否正常。如果它已经消失了 down,全局选项mysqli.reconnect自动启用 尝试重新连接。
此功能可供长时间闲置的客户端使用 同时,检查服务器是否已关闭连接和 必要时重新连接。
答案 1 :(得分:0)
您可以使用mysql_pconnect();
或同等地使用ADODB $conn->PConnect();
来创建持久连接
答案 2 :(得分:0)
您正在寻找的词语是“坚持不懈”,您正在寻找的答案就在这里:
答案 3 :(得分:0)
您可以使用以下方法之一与mysql建立持久连接:
尝试使用前缀为mysqli_connect()
的{{1}}作为主机名。
尝试将p:
和PDO::__construct()
用作驱动程序选项。