我知道,如果一个事务成功地执行了它的所有操作,就说它被提交了。它的所有效果现在都永久地建立在数据库系统上。
但是我不明白什么是Partially Committed状态?
根据定义:
Partially Committed state is When a transaction executes its final operation, it is said to be in a partially committed state.
因为部分提交和提交状态都发生在所有事务操作都已执行之后。
如何区分这两种交易状态。
最佳答案
来自 this reference ,当数据库事务的所有组件都已完成时,出现部分提交状态,并且 RDBMS 逻辑上已 promise 将这些更改持久保存到数据库,但尚未真正持久保存它们。我在这里使用“逻辑上”这个词是因为在一个事务的工作完成之后,失败仍然可能发生。考虑到这种可能性,RDBMS 会向磁盘写入足够的信息,以保证即使发生故障,也可以重新创建事务的结果,并且可以适本地更新数据库。
所以从逻辑的角度来看,partially committed 状态和committed 状态是相同的。但它们的不同之处在于,在前者中,数据库本身可能并不真正反射(reflect)交易的结果。
这是一张有用的图表,显示了数据库事务的各种状态,摘自上述引用资料:
关于transactions - 事务中Partially Committed和Committed State有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40815921/