没有 RANGE 值的 DynamoDB 表
DynamoDB tables without RANGE value
如果我创建的 table 没有 RANGE 值(即只有 HASH 值),会有什么问题吗?我听说 DynamoDB tables 将条目存储在分区中,这些分区是使用 HASH 键确定的。如果我在 table 上只使用 HASH 键,会不会导致分区太多?此外,它会增加使用查询在我的 table 中查找数据的时间吗?
would it cause too many partitions?
Dynamo DB 中没有这样的东西。
would it increase the time to seek data in my table using queries
你不能 Query() DDB table 除非它有范围键。如果只有一个散列键,您只能使用 GetItem()。 Scan() 也是允许的,但你真的不应该经常使用它。
您必须添加一个带有 has & range 键的全球二级索引 (GSI) 才能 Query() 您的数据。
没有缺点,哈希键决定了数据所在的分区,分区设计用于处理最多 3k RCU 和 1k WCU 或最多 10GB 的数据。
性能“保证”是基于他们提供的,所以这无关紧要。
拥有唯一的分区键实际上可以帮助您以后缩小规模,因为请求可以更均匀地分布,因为没有查询操作适用于项目集合中的多个项目。
如果我创建的 table 没有 RANGE 值(即只有 HASH 值),会有什么问题吗?我听说 DynamoDB tables 将条目存储在分区中,这些分区是使用 HASH 键确定的。如果我在 table 上只使用 HASH 键,会不会导致分区太多?此外,它会增加使用查询在我的 table 中查找数据的时间吗?
would it cause too many partitions?
Dynamo DB 中没有这样的东西。
would it increase the time to seek data in my table using queries
你不能 Query() DDB table 除非它有范围键。如果只有一个散列键,您只能使用 GetItem()。 Scan() 也是允许的,但你真的不应该经常使用它。
您必须添加一个带有 has & range 键的全球二级索引 (GSI) 才能 Query() 您的数据。
没有缺点,哈希键决定了数据所在的分区,分区设计用于处理最多 3k RCU 和 1k WCU 或最多 10GB 的数据。 性能“保证”是基于他们提供的,所以这无关紧要。
拥有唯一的分区键实际上可以帮助您以后缩小规模,因为请求可以更均匀地分布,因为没有查询操作适用于项目集合中的多个项目。