mysql语句执行超时设置
来源:互联网 发布:铁路运输数据 编辑:程序博客网 时间:2024/06/05 23:11
对于 Saas 系统来说,设置语句执行超时时间是必要的,原因有二:
(1)避免一些有性能问题的语句长时间执行占用大量资源,影响其他用户的使用;
(2)避免请求都被中断了服务端还在长时间的执行SQL语句,无谓的消耗资源;
有两种方式来设置执行超时,任选一种:
1. 客户端代码中设置
例如:使用 mysql 的 .net 驱动
MysqlCommand.CommandTimeout = xxx (秒)
驱动的实现原理:
(1)超时时间到时,驱动会另行和 mysql 建立一个连接;
(2)在新建的连接中,执行 kill query id,请求 mysql 把超时的查询给 kill 掉;
(3)mysql 接受到命令后,主动终止语句的执行,但保留链接,终止后向新连接返回成功消息;
(4)新连接收到消息后,关闭自己;
(5)抛出异常:Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
**
2.服务端设置
**
mysql 5.6 及以后,有语句执行超时时间变量,用于在服务端对 select 语句进行超时时间限制;
mysql 5.6 中,名为: max_statement_time (毫秒)
mysql 5.7 以后,改成: max_execution_time (毫秒)
超过这个时间,mysql 就终止 select 语句的执行,客户端抛异常:
1907: Query execution was interrupted, max_execution_time exceeded.
三种设置粒度:
(1)全局设置
SET GLOBAL MAX_EXECUTION_TIME=1000;
(2)对某个session设置
SET SESSION MAX_EXECUTION_TIME=1000;
(3)对某个语句设置
SELECT max_execution_time=1000 SLEEP(10), a.* from test a;
- mysql语句执行超时设置
- 如何设置mysql 数据库连接超时
- mysql连接超时wait_timeout设置
- 中间件查询-MySql--设置超时
- mysql的连接超时设置
- java设置一段代码执行超时时间
- 设置PHP 脚本执行超时的时间
- 为PHP函数执行设置超时
- java设置一段代码执行超时时间
- 设置具有超时功能的执行方法
- java设置一段代码执行超时时间
- java设置一段代码执行超时时间
- java设置一段代码执行超时时间
- PHP执行MYSQL语句
- 批量执行mysql语句.
- mysql语句执行顺序
- shell 执行mysql语句
- MySql优化执行语句
- 智能小车的设计与制作
- 嵌入式中 volatile 用法
- html和activity之间交互
- 安装Qt及相关问题解决
- 快速解决Android中的SELinux权限问题
- mysql语句执行超时设置
- 微信刷卡支付子商户(服务商)
- 第三周项目3
- Bluetooth Remote Controller Linux Kernel Key Report Flow
- $('div').click()事件不能用
- MySQL Update inner join数据库去重,以及根据一张表的值更新另一张表
- DB2 Load命令与DB2_LOAD_COPY_NO_OVERRIDE 注册表变量
- 《Modern Python Cookbook》(Python编程范例)笔记1.2 命名
- 传输层-4、TCP协议