在PHP的窗口关闭事件中终止长时间运行的MySQL进程
我们在PHP进程中有一个长期运行的SQL。有时,用户关闭窗口,SQL仍然在后台运行,这会降低服务器的性能 关闭窗口时PHP进程被终止后,SQL是否可以立即停止在PHP的窗口关闭事件中终止长时间运行的MySQL进程,php,mysql,apache,Php,Mysql,Apache,我们在PHP进程中有一个长期运行的SQL。有时,用户关闭窗口,SQL仍然在后台运行,这会降低服务器的性能 关闭窗口时PHP进程被终止后,SQL是否可以立即停止 我想我需要在浏览器中处理窗口关闭事件,并在事件发生时在php脚本中执行一些异常处理。这里有3个独立的“进程”,浏览器、php和sql Php不会知道浏览器已经关闭,因此无法终止sql进程。如果查询花费的时间太长,那么php无论如何都会超时。这通常设置为30秒。您似乎将整个sql脚本作为php的一个块来执行,如果是这种情况,请尝试在php代
我想我需要在浏览器中处理窗口关闭事件,并在事件发生时在php脚本中执行一些异常处理。这里有3个独立的“进程”,浏览器、php和sql
Php不会知道浏览器已经关闭,因此无法终止sql进程。如果查询花费的时间太长,那么php无论如何都会超时。这通常设置为30秒。您似乎将整个sql脚本作为php的一个块来执行,如果是这种情况,请尝试在php代码中将脚本分解为chunck,因为当php将脚本发送到数据库服务器时,db server的任务是执行!!:)您使用的是什么MySQL客户端库?我使用过的每一种方法的默认行为都是不使用持久连接,这意味着除非你做了一些奇怪的事情,否则你的请求应该已经发生了。@Muhannad,你的评论毫无意义,而且不准确。@Brad证明你的说法!:)@穆罕纳德,我想我明白你的意思了。这在很多情况下都是适用的,但是是的,我很抱歉这是你可以做的。不过,在插入基于select的数据时要非常小心。这应该在一条语句中完成,这样您就不会遇到并发插入的问题。