atitit 提升数据库死锁处理总结

本文探讨了数据库中锁的自动转换原理,特别是在事务处理过程中如何避免和解决死锁问题。介绍了通过同步机制sync来减少死锁发生的可能性,并讨论了在代码层面和服务器配置上采取的措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

atitit 提升数据库死锁处理总结

正常的来说,锁上都是自动的..不用官..
正常来讲,insert时不需要加rowlock,就默认是rowlock了,


#-----锁的自动转换原理.(正常的不用理它,除外alter  表格字段)
当事务超出其升级阈值时,数据库也许 会自动将行锁和页锁升级为表锁。

例如,在行上执行表事务时,数据库会自动在受影响的行上获取锁,同时将更高级别的意向锁置于包含这些行的页和表上。所有相关的索引页也将同时锁定。当事务所持有的锁的数量超出其阈值时,就会尝试将表上的意向锁更改为更强的锁。例如,意向排他 (IX) 锁可以更改为排他 (X) 锁。得到更强的锁后,事务在表上所持有的所有页级及行级锁都将予以释放。

作者 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com
转载请注明来源: http://blog.youkuaiyun.com/attilax

#-------事务和死锁

事务拉长了处理流程,会增添死锁的机会..
不是说不能使用事务,,,应该使用事务的还是应该使用事务...同时使用sync解决死锁.


#------解决死锁

默认状态哈,仅仅在为同样的一个记录修改的时候儿,才也许死锁...

和file雅十,  加个同步sync 在内代码走ok兰

不重要性的项目,直接only update操作sync走ok...


#------解决死锁(补充法)

代码泄漏在所难免,,必须两手抓...
客户端,自动关闭timeout conn ,好像对timeout 事务不生效..只好自己写gc  outtime...
服务器,设置 conn  timeout,,而且lock timeout...
看门狗必须的..查询lock 或者过长时间sql  ,kill....



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值