MySQL中2种方法限制查询超时时间

智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述MySQL中2种方法限制查询超时时间相关的知识,希望能为你提供帮助。
场景:
某个复杂查询虽然前端YearningSQL的窗口关闭了,但实际SQL已经下发到数据库层去执行了,这种任然会对mysql造成过大的压力。


解决方法:
方法1、在MySQL8中,可在select后面添加      /*+ MAX_EXECUTION_TIME(5000) */      (单位毫秒) 这种注解的方式,限制查询超时自动熔断。 
此外,在springboot的jdbc连接串里面可以设置全局超时时间(在mybatis  纯sql中可按sql粒度去定义超时时间)。具体看业务方是否有这方面的需求场景。
YearningSQL查询示例如下:



方法2、后台通过定时任务启动pt-kill去遍历相关的MySQL,将凡是由yearningsql平台发起的select操作,超过阈值就自动kill掉。


两种方法,都可以达到目的。 方法1的适用面更广,可以推广到业务侧去自行控制sql查询超时阈值。方法2一般只能供DBA用用。


Ref:
??https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-statements.html??
??https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-performance-extensions.html??
??https://www.cnblogs.com/yankang/p/11053168.html??
??https://www.shuzhiduo.com/A/pRdBqm3a5n/??
【MySQL中2种方法限制查询超时时间】


    推荐阅读