SQL按照相同顺序编排
在多个事务中如果处理大致相同的业务,务必以相同的数据处理顺序编排,防止SQL先后顺序不一致导致的死锁。
一次性加载所有需要的锁
在一个大事务中尽可能一次性加载所有锁,既对数据库的操作都在一开始时全部执行。尽可能避免在长时间的运算中其它事务对相同数据的操作。
尽可能以小粒度的事务处理数据
在业务允许的情况下,将一大事务拆解成若干小事务。
降低隔离级别
隔离级别高意味着更繁重的锁,例如从RR 降到RC。RC是ORACLE的默认隔离级别
添加索引
如果不添加索引,事务将会锁住整个表,是表级锁。增加索引后变为行级锁,大小减小死锁的发生。