死锁产生的原因及避免死锁的方法
- 死锁产生的原因: 两个进程都拿着对方需要的资源(锁/表/行数据)不放,而形成相互等待。
- 如果不同程序会并发存取多个表/资源,尽量约定以相同的顺序访问表/资源,可以大大降低发生死锁的可能性; 注:不影响并发性能,是最经济的办法
- 在同一个事务中,尽可能做到一次锁定所需要的所有资源,减少死锁产生概率;
- 对于非常容易产生死锁的业务部分,可以尝试使用升级锁定颗粒度,通过表级锁定来减少死锁产生的概率。注:倒是不产生死锁了,但严重影响并发性能,是最后不得已的办法
- 死锁产生的原因: 两个进程都拿着对方需要的资源(锁/表/行数据)不放,而形成相互等待。
- 如果不同程序会并发存取多个表/资源,尽量约定以相同的顺序访问表/资源,可以大大降低发生死锁的可能性; 注:不影响并发性能,是最经济的办法
- 在同一个事务中,尽可能做到一次锁定所需要的所有资源,减少死锁产生概率;
- 对于非常容易产生死锁的业务部分,可以尝试使用升级锁定颗粒度,通过表级锁定来减少死锁产生的概率。注:倒是不产生死锁了,但严重影响并发性能,是最后不得已的办法