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

分区键或GSI上的DynamoDB“query”与“get_item”操作

谷梁宏恺
2023-03-14

>

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

  • 共有1个答案

    岳飞航
    2023-03-14

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

    查询是有效的,因为它只能从单个分区检索,但是,可以返回多个项,这取决于用于排序键的操作符

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

    • 正如这个问题中所述,我假设您不能把更新日期之类的东西作为表的排序键,因为如果您更新,您将创建一个重复的记录。 此外,我总是假设同样的事情也适用于使用更新日期的GSI。但在我的场景中,我将更新日期作为GSI上的排序键,并且在更新原始项时不会创建新记录。 综上所述,属性和关键模式包括: 属性: Id MySortKey MyComputerdField 更新日期 表格: 分区键:Id 排序键:MySo

    • 我有一个带有哈希键(id)的表(配置文件),我有一个关于名称的GSI,一个关于国家的范围键。我想创建一个DAO方法,它将获取所有具有给定值的name和country的记录,如下所示:List getProfileWithNameAndCountry(name,country);

    • 只有当新项目的GSI分区键已经存在于另一个项目上时,我才希望PutItem成功。 假设我的表有以下项目(省略一些属性): 我试图把这个项目: 我希望这个PutItem请求失败,因为表还不包含GSI1PK=="e"的项。 如果可能的话,我想用一个条件表达式来解决这个问题。我不想通过在PutItem请求之前查询表来解决这个问题。 以下是我如何尝试通过一个我希望成功的示例(go sdk)实现这一点: 但

    • 我在DynamoDB中有一个表,如下所示: 我在表中添加了一个关于“category”的全局二级索引,它工作得很好,并在item Count下给出了表中的条目数。 然后我意识到,我实际上需要能够在一个特定的“类别”中搜索,但按“userrating”排序。 谢谢你的帮助。

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