我知道如果一个事务成功执行了所有操作,就会认为它已被提交。它的所有效果现在都在数据库系统上永久建立。
但我不明白什么是部分承诺状态?
根据定义:
部分提交状态是当事务执行其最终操作时,它被称为处于部分提交状态。
由于部分提交和提交状态都在执行完所有事务操作后发生。
如何区分这两种交易状态。
答案 0 :(得分:1)
从this reference开始,当数据库事务的所有组件都已完成时,似乎发生了部分已提交状态,并且RDBMS已逻辑提交将这些更改持久保存到数据库,但尚未实际持久保存。我在这里使用“逻辑”这个词,因为在交易工作完成后可能仍然会发生故障。考虑到这种可能性,RDBMS会向磁盘写入足够的信息,以确保即使发生故障,也可以重新创建事务的结果,并且可以适当地更新数据库。
因此从逻辑上看,部分提交状态和提交状态是相同的。但它们的不同之处在于,在前者中,数据库本身可能实际上并不反映交易的结果。
这是一个有用的图表,显示了数据库事务的各种状态,取自上面的引用: