当前位置: 首页 > 知识库问答 >
问题:

使用错误选择的分区键在GSI上进行DynamoDB读取会影响表的读/写吗

常炯
2023-03-14

我有一个具有良好分区键(PK=uuid)的DynamoDB表,但有一个GSI(PK=type,SK=created),其中type只有6个唯一值,created是epoch时间。

我的问题是,如果我开始使用这个GSI进行大量读取,这会影响整个表的性能吗?我看到根据这个AWS文档,表和GSI的读取容量没有共享,但是如果我们开始大量使用这个GSI,幕后会发生什么?Dynamodb写入会受到影响吗?

共有1个答案

农鸿达
2023-03-14

全局辅助索引具有单独的容量单元,以避免表本身的性能。

全局二级索引存储在远离基表的自己的分区空间中,并与基表分开扩展。

只有当表自身的信用耗尽时,表的性能才会受到影响。全局辅助索引位于其自己的分区空间中,可以将其视为具有自己的边界。

此外,由于DynamoDB对读(RCU)和写(WCU)使用单独的积分,这两个操作永远不会对另一个操作产生性能影响。

 类似资料:
  • > 如果对dynamodb表执行“get_item”操作,则必须提供分区(主)键。

  • 假设我在DynamoDB中有一个表,如果我的GSI的键基于一个属性,但是我删除或更改了该属性,那么GSI表的行为是什么?它会删除并更改GSI表中的键吗? TableName:哺乳动物表格分区键:哺乳动物名称属性1:哺乳动物数量腿属性1:哺乳动物大小 GSI名称哺乳类动物数legssi分区键:哺乳类动物数legs排序键:哺乳类大小 现在假设我有类似于哺乳动物表的数据: 哺乳动物名称:人,哺乳动物腿数

  • 我目前正在创建一个Dynamodb表,其中主键是userId以确保唯一性。但是,我需要根据时间戳选择后排,因为我不知道userID,并且会返回多个用户ID。例如(伪选择) <代码>从昨天创建日期的表中选择* 为此,我将创建dateCreated的GSI。 dateCreated应该是主键上的排序键,还是作为GSI本身就可以? 其次,一旦检索到这些项,我很可能会更新它们,但是如果我指定GSI应该返回

  • 说在AWS DynamoDB,我有一个表: 我的GSI会投影原始表的所有属性。 现在我想最终得到一组数据结构{“Alice”,“Bob”,“John”,“Michael”}。 我怎样才能做到这一点?似乎扫描操作本身不能选择唯一值,这意味着在我的情况下,扫描操作不能更快,对吗?然后,在我得到一个检索到的所有项目的列表之后,我需要对这个列表进行操作,以提取列的唯一值,这是唯一的方法吗? 所以我想我需要

  • 我是AWS的新手,在阅读DynamoDB文档时,我知道我们可以在同一个表上使用GSI和分区键。 DynamoDB如何根据到键(分区和辅助)将数据保持在同一表中。 谢谢

  • 我有一个DynamoDB表,如下所示: 是表的简单主键 是一个属性,它对表中的所有项目都具有相同的值 桌子变得很大了。我希望能够根据日期时间按范围过滤数据。我脑海中有两个快速实施的选项,但我不确定这是否会在成本方面产生很大的影响。 扫描整个表,然后按日期时间过滤(因为dynamodb不允许在扫描之前过滤) 所以,我的问题是,由于我的分区键对每个项目都是相同的,因此是一个大分区,我不确定当使用过滤器