有些sql写得不好。有时候,搜索需要几个小时。当一个应用程序(可能是一个网站)提交运行时间较长的查询时,我必须重新开始mysql。如何限制数据库端sql查询的执行时间?+ x; c. k1 [% Q3 g0 z
0 Q5 ^/ V, Z% }* ^' E- G+ O- S% G4 z. m0 a 解决方案: ; f3 b% M8 g% I
长时间执行后自动终止MySQL请执行以下操作:, F$ K: h2 b2 T* L5 q2 T
[ol]存储过程是:DECLARE CURSOR cur1 FOR SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND = 'Query' AND TIME > 120;[/ol]然后在curosr在循环中执行以下操作: 7 z: V( E9 ?7 t! c9 i FETCH ID INTO @var_kill_id;KILL QUERY @var_kill_id;[ol]创建EVENT FOR EVERY 5 SECONDS,只是CALL上述步骤。[/ol]注意:KILL3 v- @4 y; [ _9 d
QUERY只是杀死查询,而且MySQL连接没有中断。看这里。