从PHP强制MysqlQuery超时

提问

如果在一定时间内未返回查询,是否有一种方法可以迫使Mysql从PHP终止查询?

我有时会看到昂贵的查询运行数小时(很明显,这一次HTTP连接超时或用户离开了).一旦积累了足够多的此类查询,它将开始严重影响整体性能.

最佳答案

长时间运行的查询表明设计不佳.最好检查有问题的查询以及如何对其进行优化.这只是忽略了问题.

如果仍然希望这样做,则可以使用SHOW PROCESSESLIST命令来获取所有正在运行的进程.然后使用KILL x终止客户端连接.但是要使此功能起作用,您必须从另一个PHP脚本中进行检查,因为尚无法进行多线程.同样不建议让PHP授权使用的用户弄乱服务器设置.