如果选择查询太长,则中止该选择查询

时间:2014-06-24 14:48:47

标签: php mysql

我正在使用PHP编写的Web应用程序。

此应用程序的一个功能是文档存档,它是另一台服务器上的MySQL数据库。而这个存档服务器在性能方面非常不可靠,但不在我的控制之下。存档服务器经常有很长的表锁,导致连接,但没有获取任何数据。

这通常会导致开放的MySQL连接,这会使Web应用程序服务器的资源饱和。结果,整个Web应用程序变得缓慢/无法使用。

我想将这两个系统解耦。

我认为逻辑方式是我的PHP应用程序中止SELECT查询,如果花费超过1或2秒来释放资源并向用户显示远程系统没有响应的消息及时。

但是如何最好地实施这样的解决方案?


更新:set_time_limit()选项看起来是Promising。但并不完全令人满意,因为我无法向用户显示“消息”,但至少可能有助于防止资源饱和。

2 个答案:

答案 0 :(得分:1)

我认为你应该使用php中提供的maximum execution limit函数。

答案 1 :(得分:0)

您可以像this

那样设置MySQL超时

或者您可以在this

等代码上进行设置

我认为第二种解决方案对您来说可能更好 然后,如果引发超时错误,您可以告诉服务器没有响应