智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述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种方法限制查询超时时间】
推荐阅读
- 为什么是TypeScript( 入门篇)
- 服务器数据恢复意外断电导致FreeNAS中UFS2文件系统故障的数据恢复案例
- 代码审计VauditDemo程序到exp编写_巡安似海
- Hello Playwright(简化部署方式)
- 如何进行 CentOS 8 最小安装()
- 公网使用grafana域名无法正常跳转
- windows上卸载DM并重新安装可能出现的问题
- JVS表单设计并录入数据「含软开企服的开源地址」
- G019-OP-INS-RHEL-01 PackStack 安装 RedHat OpenStack