zoukankan      html  css  js  c++  java
  • Transaction And Lock--由外键导致的死锁

    死锁发生情况:
    1. 存在表A和表B,表A的主键是表B的外键
    2.事务A在表A上申请到X锁以修改表A中数据和删除表A中的数据,然后需要检查表B中的数据是否满足外键约束,从而需要Range锁来锁住表B
    3.事务B在表B上申请到X锁以修改表B中数据,然后向表A申请S锁来查询数据

    以上情况表造成资源环状阻塞,从而应发死锁。

    解决办法:
    1. 从设计角度来看,应避免修改表A中主键的值
    2. 对表B上的外键列建立索引,从而使事务A发生时将range锁放到索引上,从而降低死锁发生的概率

  • 相关阅读:
    8.18学习日志
    8.17学习日志
    8.15学习日志
    8.14学习日志
    8.13学习日志
    8.12学习日志
    8.11学习日志
    kindle
    xcode 4 安装cocos2d-x 2.1.4
    GUI之CCControlExtension
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3523001.html
Copyright © 2011-2022 走看看