一个经典引起数据库死锁的原因是两个事务按不同顺序插入和更新表。
例如,事务A先在表A中插入,然后在表B中插入。
而事务B则先在表B中插入,再插入表A。
这种情况总是存在数据库死锁的风险(假设您没有使用可串行化隔离级别)。
我的问题是:
您在设计中遵循何种模式以确保所有事务按相同顺序进行插入和更新。我正在阅读的一本书建议可以按表名排序语句。您是否采用了类似或不同的方法来强制执行所有插入和更新按相同顺序进行?
删除记录呢?删除操作需要从子表开始,而更新和插入需要从父表开始。您如何确保此过程不会遇到死锁?