千家信息网

mysql死锁deadlock相关几个系统变量innodb_lock_wait_timeout是怎样的

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章将为大家详细讲解有关mysql死锁deadlock相关几个系统变量innodb_lock_wait_timeout是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章
千家信息网最后更新 2024年11月26日mysql死锁deadlock相关几个系统变量innodb_lock_wait_timeout是怎样的

这篇文章将为大家详细讲解有关mysql死锁deadlock相关几个系统变量innodb_lock_wait_timeout是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前言

随着对于mysql死锁知识的进一步了解,发现与死锁相关的几个系统变量。下面梳理这几个技术概念,便于更进一步掌握mysql死锁的概念。这样在出现一些复杂的死锁问题时,也有助于更快速解决故障。

innodb_deadlock_detect系统变量

  • mysql 5.7.15引入此系统变量,可取值有2个,分别为:off与on。

  • 默认值为on,表明开启互锁检测功能。

  • 但是有运维经验的同学或许碰到过,在一些高并发的数据库,如果开启了死锁检测,因为死锁检测进程会去检测是否发现死锁,则会导致数据库性能下降,因为系统必须消耗资源用于定期检测是否发生死锁。

  • 建议在高并发情况下,可以考虑关闭此功能。当然一般情况,保持默认值即可。

innodb_lock_wait_timeout系统变量

  • innodb_lock_wait_timeout只能用于innodb表的事务(不适用于myisam表,因此它只有表锁,而无行锁功能)。在发生锁等

  • 待时,到达指定的值,则提示锁等待超时,自动回滚报 锁超时 的当前SQL语句(注:不是事务),这样的话,就会导致所属事务的产生数据不一致。所以必须保证在让整个事务回滚,这个由系统变量 innodb_rollback_on_timeout或者命令行选项--innodb-rollback-on-timeout控制。

  • innodb_lock_wait_timeout单位为秒,默认值为50秒。如果出现锁超时,报错信息见下:

  • ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

  • 对于高并发的OLTP数据库环境,建议减少innodb_lock_wait_timeout系统变量。你试想一下,如果锁超时时间检查一短,就可以提升并发度;而对于OLAP数据库,可以考虑增加innodb_lock_wait_timeout系统变量,因为OLAP不需要很高的并发度,如果此值过低,锁超时会话就可以等待其它持锁会话完成,而不是马上报错回滚,毕竟每次更新的数据量极大,一回滚半天白作了。

  • 如果启用了innodb_deadlock_detect=on(默认值),则innodb_lock_wait_timeout不会起作用。因为启用前者,一发现死锁,马上回滚某个死锁事务。但如果配置innodb_deadlock_detect=off,则innodb_lock_wait_timeout会起作用,让后者来控制死锁的回滚。

mysql> show variables like '%innodb%lock%timeout%';

+--------------------------+-------+

| Variable_name | Value |

+--------------------------+-------+

| innodb_lock_wait_timeout | 50 |

+--------------------------+-------+

1 row in set (0.00 sec)

关于mysql死锁deadlock相关几个系统变量innodb_lock_wait_timeout是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

死锁 系统 变量 数据 事务 检测 数据库 功能 知识 作用 内容 建议 文章 更多 概念 篇文章 控制 不错 复杂 一致 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 视频管理存储服务器 从网页上导出数据库 缺网络技术怎么办 深圳卫星软件开发 关系型数据库中的基本单位有哪些 软件开发管理核心 全国高中生网络安全中心 网络安全科普教育活动短视频 sql查询数据库有多少数据 软件开发行业怎样缴税 网络技术挑战赛是啥 美股配资软件开发 河北新一代软件开发服务应用 软件开发建立产能基线建议 软件开发需要什么材料 神木市国家网络安全宣传周 微信小程序网络安全风险 网络安全法罚没收入 河源卫星软件开发厂家直销 蚁商网络安全吗 我的世界国际服便宜的服务器 影咖服务器系统修复命令 工业园区信息化软件开发公司 认可应用软件开发 网络安全秘钥在哪找 维护网络安全做合格网民 网络技术服务费属于哪个大类 常用的数据库系统安全措施有哪些 李某软件开发劳动仲裁申请书 政府网软件开发代码女
0