【发布时间】:2015-07-28 15:07:03
【问题描述】:
我已经阅读了文档,似乎 SQL BATCH 命令和事务完成了相同的目的,即将所有语句作为一个全有或全无的事务提交。
这是正确的,还是我遗漏了什么?
我正在通过 PhpOrient 语言绑定使用 Orient,并且看到它同时支持事务和批处理,但我只使用 SQL 并希望仅使用 SQL 执行事务。从我的测试来看似乎是一样的,但我想确认一下。
【问题讨论】:
标签: sql tsql transactions orientdb
我已经阅读了文档,似乎 SQL BATCH 命令和事务完成了相同的目的,即将所有语句作为一个全有或全无的事务提交。
这是正确的,还是我遗漏了什么?
我正在通过 PhpOrient 语言绑定使用 Orient,并且看到它同时支持事务和批处理,但我只使用 SQL 并希望仅使用 SQL 执行事务。从我的测试来看似乎是一样的,但我想确认一下。
【问题讨论】:
标签: sql tsql transactions orientdb
SQL 批处理
a) SQL Batch 只是需要执行的命令的集合,不保证成功或失败。
b) 批处理是指将事物放入队列中,并在达到一定数量或经过一定时间后进行处理。您可以在此进行撤消/回滚。
在 BATCH PROCESSING 中,银行只会排队 xyz 的存款请求。银行只会将您的请求与所有其他请求排在队列中,并在一天结束或达到一定金额时处理它们。
SQL 事务
a) SQL 事务是保证成功或完全失败的命令的集合。事务不会完成一半的命令,然后在其余的命令上失败,如果一个失败,它们都会失败。
b) 事务类似于允许您回滚/撤消更改的实时处理。
在 TRANSACTIONS 中,它就像批处理一样,但您可以选择“取消”它。
【讨论】:
交易
事务是可以提交或回滚的原子工作单元。当一个事务对数据库进行多次更改时,要么在事务提交时所有更改都成功,要么在事务回滚时撤消所有更改。
由 InnoDB 实现的数据库事务具有由缩写词 ACID 统称为的属性,用于原子性、一致性、隔离性和持久性。
【讨论】: