第 21 / 22 篇

附录 C:术语与故障速查

术语 本书含义 判断时需要的边界
事务 一组由提交或回滚结束的数据库工作 连接、自动提交、隐式提交与外部副作用
一致性读 按读视图读取可见版本 隔离级别、首次读取与自身修改
锁定读 读取并按语义获得相应锁 显式事务、访问路径、记录与范围
当前读 针对当前可用记录的读取或修改语义 不能等同普通 RR 快照
MVCC 多版本并发控制 可见性不自动提供所有业务约束
死锁 事务之间形成等待环 检测配置、受害事务与完整恢复
锁等待超时 语句等待锁超过期限 默认只回滚当前语句,配置可能改变
唯一业务键 识别同一业务操作并由约束裁决重复 作用域、参数指纹、结果与保留期限
unknown 缺少确认提交结果的证据 不是成功,也不是已回滚
Outbox 与业务记录在本地事务中共同保存的待发事件 不等于全链路恰好一次
SKIP LOCKED 跳过已锁记录的锁定读取 适合特定队列场景,结果可能不完整
EXPLAIN 优化器计划与相关估计 不能直接当作实际延迟或磁盘读次数
执行计划回归 数据、统计、SQL或版本变化后路径改变 需要代表性数据与读写验证
复制延迟 副本尚未反映上游变化 查询为空不一定证明从未提交
观察 可以采取的下一步 不能直接推出
1213 明确完整事务回滚与重试策略 只重试最后一条 SQL 就足够
1205 查配置、处理当前事务并核对前序变化 整个事务一定已回滚
1062 核对冲突约束、原业务键及参数 一定是同一业务已经成功
COMMIT 后连接错误 保留原身份并查询可信状态 订单不存在,可以换键重做
表有索引 检查实际计划与访问范围 查询一定使用该索引且没有等待
HTTP/CLI成功 核对实际数据库状态和业务不变量 所有并发与故障窗口已经正确

实验固定单节点 MySQL 8.4/InnoDB;正常复制切换、断电持久性、备份恢复与生产压测不在已经完成的实验范围。故障名称相近时,优先核对实际阶段、错误码与数据,不用一种重试方式覆盖全部异常。