InnoDB 默认遇到死锁怎么办?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
开启死锁检测时,InnoDB 发现循环等待可回滚其中一个事务,使其他事务继续。选择牺牲者时会考虑事务大小,不能保证总是回滚刚开始或最后执行的那个。
讲清原理
应用要识别死锁错误并重新开始可重试的整段事务。锁等待超时是另一种失败,默认可能只回滚当前语句,应用仍要确认整个事务是否已经回滚。
例子与易错点
无论哪类失败,调用方都应明确结束失败事务并限制重试。如果有外部扣款或消息发送,要避免重试时把它们重复执行。
相关题 · 第 62 题、第 64 题
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。