MySQL max_execution_time参数原理解析

MySQL max_execution_time参数解析

一、参数解释说明

参数max_execution_time用来控制select语句的最大执行时间,单位是毫秒,可以动态修改,分为session和global两种级别,如果设置为0的话,则证明不设限制。

二、使用示例

mysql> set net_read_timeout=2;
Query OK, 0 rows affected (0.00 sec)

mysql> select count(*) from t10 a,t10 b where a.name != b.name;
ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded
mysql>
mysql>
mysql> set session max_execution_time=10000;
Query OK, 0 rows affected (0.00 sec)

mysql> select count(*) from t10 a,t10 b where a.name != b.name;
ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded
mysql>

三、内部原理

MySQL在每次query请求发起前,会去执行is_timer_applicable_to_statement去检测此sql是否需要进行max_execution_time的监控,判断逻辑如下

/**
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值