# 什么时候应该使用数据库事务？

Canonical URL: https://help.iagenify.com/zh/faqs/databases/when-should-i-use-a-database-transaction

[← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)

帮助中心 · 常见问题 数据库 1 分钟阅读
# 什么时候应该使用数据库事务？
当一组相关数据库更改必须作为整体处理时，应使用事务：要么全部成功，要么全部不提交。事务应保持精简且时间较短，并确认数据库操作或驱动支持所需事务行为。
IaGenify
数据库

## 保持相关更改的一致性
例如，余额转账需要扣款和入账同时成功。如果只提交一项更改，存储状态就无法代表预期操作。
事务也能保护多步更新流程，例如先读取某个值，再写入依赖该值的结果。存在并发更改时，应根据数据库和业务规则选择合适的隔离级别或锁定方式。
## 避免在事务中执行耗时或外部操作
不要在事务中等待用户、网络服务或长时间计算。长期打开的事务会占用资源，并增加并发处理的复杂度。
邮件、付款或文件上传等外部操作通常无法通过数据库回滚撤销。请通过明确状态、outbox 或补偿操作进行协调，并测试流程在步骤之间中断时的处理方式。 [← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)
