加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

innodb_lock_wait_timeout参数的明白

发布时间:2022-03-22 02:59:53 所属栏目:编程 来源:互联网
导读:前言:在管理ORACLE的工作中,经常发现因为锁等待的原因导致应用宕机了。Mysql考虑到自身的性能和架构等因素,InnoDB数据库引擎增加了参数innodb_lock_wait_timeout,避免在资源有限的情况下产生太多的锁等待; 一、innodb_lock_wait_timeout的参数说明 inno
      前言:在管理ORACLE的工作中,经常发现因为锁等待的原因导致应用宕机了。Mysql考虑到自身的性能和架构等因素,InnoDB数据库引擎增加了参数innodb_lock_wait_timeout,避免在资源有限的情况下产生太多的锁等待;
 
一、innodb_lock_wait_timeout的参数说明
 
     innodb_lock_wait_timeout指的是事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败;
 
     参数的时间单位是秒,最小可设置为1s(一般不会设置得这么小),最大可设置1073741824秒(34年,一条语句锁等待超过30分钟估计业务该有反馈了)
 
     默认安装时这个值是50s(公司的默认参数设置)
 
二、参数的修改
 
      参数支持范围为Session和Global,且支持动态修改,所以可以通过两种方法修改;
 
2.1 通过语句修改
 
set innodb_lock_wait_timeout=100;
 
set global innodb_lock_wait_timeout=100;
 
注意global的修改对当前线程是不生效的,只有建立新的连接才生效
 
2.2 修改参数文件/etc/my.cnf
 
innodb_lock_wait_timeout = 50
 
三、当等待超过阀值时的情况
 
当锁等待超过设置时间的时候,就会报如下的错误;
 
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
总结:本文档只是对MySQL锁等待的相关参数做一个简单的了解,后续会有整理相关锁等待及管理的文档。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读