回答

收藏

如何限制SQL执行时间

技术问答 技术问答 274 人阅读 | 0 人回复 | 2023-09-14

有些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连接没有中断。看这里。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则