DynamoDB对分区键或GSI的 "查询 "与 "get_item "操作的比较

问题描述 投票:0回答:1
  • 如果你在dynamodb表上执行 "get_item "操作,你必须提供一个分区(主)键。

  • 你不允许在GSI(全局二级索引)上执行 "get_item "操作,即使它的作用与分区(主)键完全相同。

  • 要使用GSI,你需要 "查询 "数据库。

所以,我的问题是问:对GSI的 "query "操作是否与对分区键的 "get_item "一样有效?

amazon-web-services nosql amazon-dynamodb amazon-dynamodb-streams
1个回答
0
投票

我相信GetItem的性能会稍微好一些,因为它只会从一个哈希键(分区键和可选的排序键)中获取一个项目。

查询的效率很高,因为它只会从单个分区中检索,但是,可以返回多个项目,这取决于排序键的操作符。


0
投票

之所以需要一个 疑问 当从GSI中读取数据时,需要注意的是,与表本身不同的是,GSI可能包含同一键的多个项目。所以,对于表本身来说,你可以保证,也被迫保证每个分区+排序键永远只有一个项目,而GSI可能最终会有多个项目映射到GSI中的同一个分区+排序键。

我不打算评论查询GSI与主表上的get项相比的性能,只能说如果你关心性能的话,你应该运行自己的基准,不过在大多数情况下,差异应该可以忽略不计。

© www.soinside.com 2019 - 2024. All rights reserved.