mysql死锁怎么解决?


本文摘自PHP中文网,作者青灯夜游,侵删。

mysql死锁的解决发方法:1、等待,直到超时(innodb_lock_wait_timeout=50s),自动回滚事务;2、发起死锁检测,主动回滚一条事务,让其他事务继续执行(innodb_deadlock_detect=on)。

MySQL有两种死锁处理方式:

● 等待,直到超时(innodb_lock_wait_timeout=50s),自动回滚事务。

● 发起死锁检测,主动回滚一条事务,让其他事务继续执行(innodb_deadlock_detect=on)。

由于性能原因,一般都是使用死锁检测来进行处理死锁。

死锁检测

死锁检测的原理是构建一个以事务为顶点、锁为边的有向图,判断有向图是否存在环,存在即有死锁。

回滚

检测到死锁之后,选择插入更新或者删除的行数最少的事务回滚,基于 INFORMATION_SCHEMA.INNODB_TRX 表中的 trx_weight 字段来判断。

以上就是mysql死锁怎么解决?的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

mysql使用skip-name-resolve解决外网连接客户端过慢如何解决

mysql5.7中的json基本操作指南

mysql如何导出某个表?

怎么把文本导入mysql

mysql数据库中如何进行子查询

mysql中#{}和${}的区别详解

navicat连接mysql失败如何处理

mysql设置log-bin失败怎么办

mysql怎么建库?

mysql的排序sql语句

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...