超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

事务、隔离、锁与并发正确性

MySQL、SQLAlchemy 与数据库设计#Python全栈#第十四阶段#MySQL、SQLAlchemy 与数据库设计#事务、隔离、锁与并发正确性约 762 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

事务的 ACID 分别表达什么?

追问 多表写入、并发修改和服务异常各需要哪些保障?一致性为什么仍依赖业务约束与正确逻辑?

autocommit、BEGIN、COMMIT 与 ROLLBACK 如何配合?

追问 默认自动提交与显式事务怎样区别?MySQL 中哪些 DDL 可能隐式提交,为什么不能假设所有语句都能一起回滚?

脏读、不可重复读与幻读分别是什么现象?

追问 用两个连接和明确操作顺序怎样演示?为什么要区分普通一致性读与锁定读再讨论 InnoDB 行为?

READ COMMITTED 与 REPEATABLE READ 的快照通常何时建立?

追问 同一事务多次普通 SELECT 可能看到什么差别?首次一致性读、显式快照和后续写入如何影响判断?

MVCC 怎样支持读写并发?

追问 版本可见性与锁分别承担什么职责?长事务为什么可能影响历史版本清理,而不是“读不加锁就完全没有成本”?

SELECT FOR UPDATE 怎样用于先读后改的业务?

追问 事务边界、查找索引、记录范围与锁等待如何影响效果?查询没有匹配记录时,应如何结合隔离级别和索引分析?

记录锁、间隙锁与 next-key lock 主要有什么区别?

追问 唯一点查与范围查询在具体隔离级别下可能锁住什么?为什么并非所有查询都固定获得同一种锁?

如何避免库存或剩余名额被并发扣成负数?

追问 条件更新、行锁和版本号各怎样实现?如何判断成功数量,并用两个以上并发请求验证边界?

死锁与锁等待超时有什么区别?

追问 访问顺序、事务长度和索引如何影响锁冲突?怎样核对回滚范围,再有限重试完整业务单元而不是盲目重放最后一条 SQL?

数据库事务能保证外部邮件、文件或远程接口原子成功吗?

追问 提交后通知、Outbox、幂等与补偿各解决什么?为什么把外部网络等待放进长事务可能增加锁和故障成本?

核对资料: MySQL 8.4 InnoDB 隔离级别。