mysql 执行时间限制,如何限制SQL执行时间

Some sql is not well written. Sometimes a search costs hours in applications.

When a application(maybe a website) submit a query which run long time, I have to restart the mysql.

How can I limit a sql query's execution time in the database side?

解决方案

To auto kill a query in MySQL after a long execution time:

Create a stored procedure as:

DECLARE CURSOR cur1 FOR SELECT ID

FROM INFORMATION_SCHEMA.PROCESSLIST

WHERE COMMAND = 'Query' AND TIME > 120;

then inside curosr's loop do:

FETCH ID INTO @var_kill_id;

KILL QUERY @var_kill_id;

Create EVENT FOR EVERY 5 SECONDS and just CALL the above procedure inside it.

Note: KILL QUERY just kills the query and MySQL connection is not broken. see here.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值