交易中的操作顺序重要吗?

时间:2019-07-09 18:33:34

标签: database transactions amazon-dynamodb

我正在使用AWS DynamoDB,正在阅读其低级API文档。

在TransactWriteItems部分中,它提到:

enter image description here

我想知道为什么这里提到它是一个有序数组。因为在单个事务中,任何两个操作都不能对同一项目进行操作,所以事务中的操作顺序应该无关紧要。

这在DynamoDB中只是特殊之处还是在事务中操作顺序很重要的正常情况?

谢谢!

1 个答案:

答案 0 :(得分:0)

不,顺序无关紧要。

对于请求交易的客户,顺序无关紧要,因为

  • 对于单个项目,您的交易中不能进行多个操作。
  • 您不能将一个操作的结果用作同一事务中另一操作的输入。
  • 除了主键的唯一性之外,同一表中的任何项目之间都没有强制依赖性(也没有强制非依赖性/反依赖性)。
  • DynamoDB强制执行的不同表中的项目之间没有依赖性(例如,外键要求)。

总而言之,DynamoDB事务中的所有操作在数据库级别上都是彼此完全独立的,除了它们在同一事务中。操作之间的任何依赖关系仅存在于您创建的应用程序/业务逻辑中。

对于从外部查看交易的客户(即未发送该特定交易请求),交易中操作的顺序无关紧要,因为交易的重点是交易的所有部分原子发生。对于没有创建该交易的客户,交易的所有部分似乎都是同时发生的。