07.行锁

行锁

  • 1.不支持引擎的锁并发只能用表锁,一张表只能有一个更新执行

  • 2.行锁是针对表中行记录的锁。


1.两阶段锁

  • 1.两阶段锁协议:在inooDB中,行锁在需要的时候加上,不是不需要立即释放,事务结束才释放

2.死锁和死锁检测

  • 1.死锁: 并发系统不同线程循环资源依赖,线程都在等待别的线程释放资源时,这几个线程都会进入无限等待的状态

  • 2.解决死锁两种策略:
    1)进入等待,直到,超时时间通过参数innodb_lock_woit_timeout设置
    2)发起死锁检测,发现死锁,主动回滚锁链条中某个事务,让其他事务继续执行,通过参数innodb_deadlock_detect设置成on,表示开启死锁检测

  • 3.innoDB 参数innodb_lock_wait_timeout默认时间50s

  • 4.死锁检测耗费大量CPU资源 解决方案:
    1)控制并发度,限制线程数、对于相同行更新进入引擎前排队
    2)一行数据改为多行逻辑

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值