Mysql读书笔记

 

行锁

  MySQL的行锁由各自的引擎自己实现

  两阶段锁协议:
    在InnoDB中行锁是需要才加上的,并且需要等到事务commit后才会释放
    
    事务需要锁住多个行,可以把最有可能造成锁冲突的语句放在后面(还是有可能产生死锁)
    
  死锁解决策略:
    直接进入等待,设置等待超时时间 innodb_lock_wait_timeout来设置 默认50s
    
    发起死锁检测,如果出现死锁,回滚数据 参数innodb_deadlock_detect设置是否开启死锁检测
    
  减少死锁:
    如果出现热点行更新出来的性能问题:
      确保不会发生死锁 -》 关掉死锁检测
      控制并发度