2019-07-28第七讲:行锁
2019-07-31 本文已影响0人
Mr钧
一. 行锁是在引擎层由各个引擎自己实现的.
二. 两阶段锁协议
1.what: 行锁在需要的时候就加上, 但是不需要了不能立刻释放,需要等事务提交才释放.
2.行锁是在commit的时候才释放的.
3.how [经验]: 如果事务要锁多个行, 就把最可能造成锁冲突的, 影响并发读的锁, 往后放
三.死锁 和死锁检测
1.死锁检测: what 是一个时间复杂读O(n)的操作, 很容易耗尽cpu资源.
2.如何解决热点行更新导致的性能问题?
1.把死锁检测关掉==> 有损, 风险高.
2. 控制并发度 ==> 写一个中间件
3. 逻辑设计 ==> 分治. ==> 聚合