我们有数据库死锁的一个典型原因是当两个事务以不同的顺序插入和更新表时。
例如,事务 A 在表 A 中插入,然后在表 B 中插入。
事务 B 在表 B 中插入,然后是 A。
这种情况总是存在数据库死锁的风险(假设您没有使用可序列化的隔离级别)。
我的问题是:
您在设计中遵循什么样的模式来确保所有事务都以相同的顺序插入和更新。我正在阅读的一本书 - 建议您可以按表格名称对语句进行排序。您是否做过类似或不同的事情 - 这会强制所有插入和更新都以相同的顺序进行?
删除记录怎么办?删除需要从子表开始,更新和插入需要从父表开始。你如何确保这不会陷入僵局?