明确需要防止的异常
Read committed、repeatable read 和 serializable 通常提供不同保证,具体语义因引擎而异。先确认是否需要避免脏读、不可重复读或多次查询结果不一致。
读取余额后据此决定写入的事务,可能需要比独立分析查询更强的保护。若要维护特定行或操作的不变量,可考虑锁、乐观并发控制或版本检查。
测试竞争和恢复行为
运行有代表性的并发事务,并观察锁、死锁和序列化失败。使用较强隔离时,数据库报告冲突后可能需要重试整个事务。
未经负载测试不要全局提高隔离级别。记录事务边界所需的保证,并确认重试安全,且外部副作用只在提交成功后发生。