innodb_lock_wait_timeout参数的了解

前言:在管理ORACLE的工作中,经常发现因为锁等待的原因导致应用宕机了。Mysql考虑到自身的性能和架构等因素,InnoDB数据库引擎增加了参数innodb_lock_wait_timeout,避免在资源有限的情况下产生太多的锁等待;

一、innodb_lock_wait_timeout的参数说明

image_thumb[1]

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锁等待的相关参数做一个简单的了解,后续会有整理相关锁等待及管理的文档;

......................................................................................................................................................................………………………………………

本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。

ORACLE技术博客:ORACLE 猎人笔记               数据库技术群:367875324 (请备注ORACLE管理 ) 

......................................................................................................................................................................………………………………………

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值