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

DynamoDB扫描,无筛选器表达式vs查询

魏襦宗
2023-03-14

我已经在该表上创建了DynamoDB表和全局辅助索引。我需要从该表的GSI中获取所有数据。

有两种选择:

  1. 无筛选表达式的扫描操作

我需要找出哪一个性能更好,以便我开始我的实现。

我已经读了很多关于DynamoDB扫描和查询操作,但可以解决我的查询。

请帮我解决我的问题。

提前谢谢。

阿披实

共有1个答案

狄楷
2023-03-14

它们都会带来相同的性能开销。所以选择其中一个应该没问题。您应该考虑在您使用的任何方法之上添加优化,例如执行最佳实践中提到的并行扫描:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScanGuidelines.html

或在应用程序中缓存数据

请注意,并行扫描会耗尽您的储备。

在做出决策时,另一件需要注意的事情是,查询模式改变的可能性有多大?您是否计划在未来添加过滤器?如果是这样,那么查询会更好,因为扫描会加载所有数据(消耗配置的读取容量),然后过滤结果。

 类似资料:
  • 第一篇文章是关于Stack的,对于使用Python和DynamoDB编程来说,这是相当新的,但是我只是想在我的表上运行一个扫描,根据两个预定义的属性返回结果。 ---这是我的Python代码片段--- 我的发电机有4个磁场。 ID 日期 班次 安全 现在关于这个问题,在运行时,我得到了两个返回的表条目,而我应该只得到第一个条目...根据我的扫描标准,有“没有安全问题”的那个。 ---这是我的Dyn

  • 我在正确表达ElasticSearch regexp过滤器的regexp时遇到了问题。我正在尝试匹配url字段中“info-for/media”中的任何内容,例如http://mydomain.co.uk/info-for/media/press-release-1。为了尝试获得正确的正则表达式,我现在使用,但最终将是带有用户查询字符串的。 发布到localhost:9200/_search 这返

  • 当我执行扫描时,我需要应用一个过滤器来确保只返回我需要的记录类型。我注意到的是,返回的LastEvalue atedKey没有考虑到应用的Filter表达式。 我的(扫描)查询: 返回的: 我可以理解这可能是DynamoDB更基本的实现细节,而不是DocumentClient的问题。当使用单个表设计时,它确实使api更难使用。 我的表中有多个实体,并非所有实体都是“公共”的和/或针对同一租户。如果

  • 正如使用boto3完全扫描dynamoDb中所解释的,我构建了一个解决方案,使用某些条件完全扫描dynamoDb表。这是我的代码: 但是当代码被执行时,它会进入一个无限循环。这是LastEvaluatedKey每次迭代的输出: 它一直在这两对之间循环。 编辑: 我添加了do_scan方法。

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

  • 这是我的用例: 我有一个带有200k对象的JSON Api。数据集看起来有点像这样:日期、自行车型号、以分钟为单位的生产时间。我使用Lambda从JSON Api中读取并通过超文本传输协议请求在DynamoDB中写入。Lambda函数每天运行并使用最新数据更新DynamoDB。 然后,我按日期检索数据,因为我想计算每天的平均生产时间,并将其放在第二个表中。Alexa技能连接到第二个表,并读取每天的