事务 · Transaction
英文:transaction/trænˈzækʃən/(重音在 sac)
后端与数据库难度:硬核 ★★★
🗣️一句话大白话
把几个数据库操作「捆绑成一件事」:要么全部成功,要么全部撤销,绝不允许成功一半。转账就是典型:扣钱和到账必须同生共死。
🎬真实场景
转账:A 账户扣 100 元,B 账户加 100 元。扣完钱系统崩了、B 没加上——钱凭空消失。用事务把两步捆在一起:任何一步失败,整个回滚到操作前,谁也不许少钱。
📮你可以这样说
「「转账操作要用数据库事务:扣款和入账必须同一个事务,任何一步失败就整体回滚。用事务的代码给我标出来。」」
⚠️边界与常见误解
- ▸事务只管「数据库操作」捆在一起,管不了发邮件等外部动作
- ▸事务期间会锁数据:包的操作越多太久,别人等着越急——保持事务短小
- ▸AI 生成的涉及多步写入的代码,要主动问一句「这里用事务了吗」