有些sql没写好。有时在应用程序中进行搜索会花费数小时。 当应用程序(可能是网站)提交长时间运行的查询时,我必须重新启动 mysql。 如何在数据库端限制 sql 查询的执行时间?
最佳答案
在长时间执行后自动终止 MySQL 中的查询:
创建一个存储过程为:
DECLARE CURSOR cur1 FOR SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND = 'Query' AND TIME > 120;
然后在 curosr 的循环中执行:
FETCH ID INTO @var_kill_id; KILL QUERY @var_kill_id;
创建
EVENT FOR EVERY 5 SECONDS
并在其中调用
上述过程。
注意:KILL QUERY 只是终止查询,MySQL 连接并没有中断。见here .
关于mysql - 如何限制sql执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11772854/