事务、隔离、锁与并发修改
SQL、业务数据建模与数据库实践#FDE#第五阶段#SQL、业务数据建模与数据库实践#事务、隔离、锁与并发修改约 544 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
哪些工单操作应该放在同一个事务?
追问 领取工单与写入事件如何保证一致?中途失败后怎样检查全部结果?
autocommit、显式事务与提交有何区别?
追问 一次函数调用是否等于一次事务?驱动和 ORM 默认行为如何核对?
事务隔离需要解决哪些并发观察问题?
追问 脏读、不可重复读与幻读如何用场景解释?实际结果怎样结合数据库实现和查询方式验证?
同一事务内读取与锁定读取有何差异?
追问 快照、当前记录与锁范围如何确认?为什么不能仅凭“可重复读”推断全部查询行为?
两个人同时领取同一张未分派工单,怎样保证只有一个成功?
追问 条件更新和受影响行数如何使用?先查询再更新还需要什么保护?
锁定读取应怎样选择索引与事务范围?
追问 实际扫描范围如何影响锁竞争?为什么不宜在持锁期间等待外部接口?
死锁与锁等待超时有什么不同?
追问 事务顺序、执行证据与重试如何安排?重试前需要确认哪个事务已回滚?
长事务为什么影响其他用户和系统资源?
追问 连接、锁和历史版本如何占用?分批处理后原有一致性要求怎样继续满足?
数据库提交后远端写入失败,应怎样处理?
追问 本地回滚还能撤销已提交数据吗?持久状态、查询与补偿如何提供恢复依据?
怎样有效测试事务和并发约束?
追问 不同连接与交错执行如何安排?最终数据、失败响应和事件次数怎样一起断言?