快速查询包含键的表(DynamoDB 和 Java)

我有一个包含哈希和范围复杂键的表。
我可以使用适用于 Java 的 AWS 开发工具包查询项目。如果找不到对象或找不到作为 的项,则返回 null。
我正在寻找最快的方法来检查对象是否确实存在
,我想也许可以提供这样的:GetItemGetItemMap<String, AttributeValue>.withAttributesToGet

GetItemResult result =  dbClient.getItem(new GetItemRequest().
    withTableName(TABLE_NAME).
        withKey(new Key(new AttributeValue().withS(hashKey),
                        new AttributeValue().withS(rangeKey))).
        withAttributesToGet(new ArrayList<String>()));
Map<String, AttributeValue> item = result.getItem();
return (item != null);

另一个优化是不使用SDK JSON解析器,并自行解析响应以快速检查项目是否已返回。

谢谢


答案 1

我认为“获取”和检查它是否存在之间的速度差异可以忽略不计。您可以继续使用 GetItem 本身。如果项目可能太大,则限制返回的属性。

瓶颈处于延迟状态,无法到达 Dynaamo 数据库服务器 (REST API) 并从索引中提取。因此,获取和检查的速度将相似。确保您发出呼叫的服务器与 Dynamo DB 位于同一区域 - 这对速度的影响最大。


答案 2

通过仅提及哈希键作为要获取的属性,可以提高性能,而不会浪费吞吐量。


推荐