【发布时间】:2018-06-11 10:11:20
【问题描述】:
假设我使用的是标准 SQL 引擎(例如 Postgres、MySQL...)。
如果我没有明确地说“开始交易”和“结束交易” 查询时
(如“插入学生......”),
它会“安全”吗?
我会丢失由 RDBMS 实现的“ACID”属性吗? 如果发出许多请求,我的应用程序现在会不一致吗?
RDBMS 是否仅在我使用事务时保证 ACID?
我在应用程序代码中进行的每个写查询是否都必须是一个事务才能在我的应用程序中使用 ACID 属性?
【问题讨论】:
-
MySQL 是否正确兼容 ACID 是一个有争议的问题,但我认为 InnoDB 引擎兼容是普遍接受的。因此,只有在对数据集执行多个相互关联的查询时才需要事务。
标签: mysql sql sql-server postgresql transactions