Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无限循环内的MYSQL数据库连接_Php_Mysql - Fatal编程技术网

Php 无限循环内的MYSQL数据库连接

Php 无限循环内的MYSQL数据库连接,php,mysql,Php,Mysql,我有一个永远运行的PHP脚本,而(1)在该脚本中我执行一些db调用。我为每个查询打开和关闭数据库连接 这是一种良好的做法,还是应该将打开的连接置于回路外部而不关闭。如果出现错误,脚本将通过shell脚本重新启动。这取决于。您没有对您的场景给出太多解释,根据您所做的工作,可能有理由以不同的方式处理连接 如果您的脚本在两次查询之间休眠一段时间,我将关闭数据库连接。不必要地打开空闲数据库连接可能会造成浪费,因为即使在不运行查询的情况下,打开的连接也会在数据库服务器上使用少量RAM 但是如果您的脚本快速

我有一个永远运行的PHP脚本,而(1)在该脚本中我执行一些db调用。我为每个查询打开和关闭数据库连接


这是一种良好的做法,还是应该将打开的连接置于回路外部而不关闭。如果出现错误,脚本将通过shell脚本重新启动。

这取决于。您没有对您的场景给出太多解释,根据您所做的工作,可能有理由以不同的方式处理连接

如果您的脚本在两次查询之间休眠一段时间,我将关闭数据库连接。不必要地打开空闲数据库连接可能会造成浪费,因为即使在不运行查询的情况下,打开的连接也会在数据库服务器上使用少量RAM

但是如果您的脚本快速运行查询,而不在循环中休眠,那么仅断开连接以立即重新连接将是浪费。连接到db服务器会导致一些延迟和CPU成本

您还应该处理在查询之间终止数据库连接的情况。处理此问题的一个好方法是在查询时检查错误,然后重试连接和查询,或者在您的情况下退出PHP脚本,因为它无论如何都会重新启动


简而言之,每个规则都有例外,您在问题中没有提供足够的信息来做出明确的建议。

谢谢您的回答。。它在每次迭代中至少执行一个select查询。。一次迭代最多4-5次。。也就是说,如果它在一次迭代中执行多个查询,那么下一个查询将返回到1 select。。多重查询exe一天大约发生4到5次,循环时间为10秒。您是否完全控制PHP服务器?如果您不这样做,那么如果管理PHP服务器的人已经为该服务器上的所有PHP脚本设置了最大执行时间,那么您可能会遇到脚本执行时间不足的问题。。港口我还没有执行超时。。循环检查和api。。没有什么太复杂的事情正在运行什么类型的查询(例如选择、更新、删除等)?它们是否必须“实时”运行,或者是否可以批量运行(例如每小时运行一次)?更新查询。。需要实时运行。。simple status会在下一次迭代中通过下一个任务的switch语句进行更新