MySQL实战07の行锁

1. 两阶段索协议

在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立即释放,需要等到事务结束才释放。
如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并发度的锁置后

 

2. 死锁

系统中不同线程之间出现循环资源依赖,线程之间互相等待对方释放锁

处理策略

  1. 直接进入等待,直到超时,通过参数设置innodb_lock_wait_timeout
  2. 死锁检测,回滚其中一个事务,让其他事务继续执行,将参数innodb_deadlock_detect 设置为 on
  3. 怎么解决由热点行更新导致的性能问题呢?在数据库服务端控制并发度,使用数据库中间件或者将修改一行改为修改多行记录,将影院账户改为10条记录的和,每次更新其中一条。

文章出处:https://time.geekbang.org/column/article/70215(极客时间专栏)

转载于:https://www.cnblogs.com/yangjiming/p/11016346.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值