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

按页面查询DynamoDB

终洛华
2023-03-14

我的应用程序需要从dynamoDB查询对象列表,我使用python编写的api(boto3)来查询。我希望用户能够按页面查看项目,并请求下一个/上一个项目

如何在It中实现api?我的表是带2个键的结构,

'key1': user1 //string
'key2' : item1 //string

'key1': user1
'key2' : item2 

'key1': user1
'key2' : item3

'key1': user1
'key2' : item4

我目前正在使用query为一个用户获取所有项目,但在很大程度上,我希望按页面获取。扫描操作有一个名为“LastEvaluatedKey”的参数,所以我考虑使用该参数设置ExclusiveStartKey并将结果限制为每页的项目数,但它仍然扫描整个表,对吗?

共有1个答案

宫子晋
2023-03-14

每当查询扫描操作的结果大于1MB时,DynamoDB将返回一个LastEvaluatedKey

扫描仍然是一种低效的操作,即使您正在对结果进行分页。如果希望在应用程序中提供分页,则可以通过对查询操作的结果进行分页来获得最佳性能。尽可能避免扫描

 类似资料:
  • 使用数据库的应用程序,多数情况下都需要使用 “分页” 这个功能。尤其是在 Web 应用程序中,后端的分页查询尤其的普遍。 在以往的使用经验中,一个分页查询,除了能获取到一个列表外,我们通常需要如下几个信息才能在客户端显示出一个完整的翻页条。 当前页数 -- 第几页 页大小 -- 每页有多少条记录 总页数 -- 一共多少页 总记录数 -- 如果不分页,一共有多少条记录 当我们获得了这四条信息后,对于

  • limt 分页查询 查询前3条记录 分页公式: (offset - 1) * limit SELECT name FROM `student` LIMIT 0, 3; Student.findAll( { attributes:['name'], // 当前页 offset:0, // 每页显示的条数 limit:3 }) 分页案例 router.ge

  • 在使用 hyperf/database 来查询数据时,可以很方便的通过与 hyperf/paginator 组件配合便捷地对查询结果进行分页。 使用方法 在您通过 查询构造器 或 模型 查询数据时,可以通过 paginate 方法来处理分页,该方法会自动根据用户正在查看的页面来设置限制和偏移量,默认情况下,通过当前 HTTP 请求所带的 page 参数的值来检测当前的页数: 由于 Hyperf 当

  • 想象有一个页面在说http://google.com/AddUser在这里输入记录的详细信息,然后单击保存。完成此操作后,页面将重定向到 http://google.com/userList 您可以在其中查看用户列表,包括您刚刚输入的新记录。 如果我们按照页面对象模型,那么在和验证记录是否实际保存和显示的方法应该在 如果我们认为addUser和userList是两个类的对应对象,它会像下面这样:

  • 问题内容: 我正在尝试在postgres中的查询中使用group by。我无法按照我想要的方式对其进行工作,以便根据需要对结果进行分组。 这是对我刚刚回答的递归查询的另一个堆栈问题的扩展。但是现在我需要能够将结果分组到最终查询的root_id列上。这是之前的查询: 这是我想做的,以便将具有相同parent_comment_id的所有记录保存在一起。 可能有许多记录返回了相同的parent_comm

  • 我正在使用Ebean和Play 2框架,并得到两个模型:用户模型和图书模型。用户模型与图书模型以一对多关系连接。所以每个用户可以有很多书或者根本没有书。图书模式本身也有其特性。现在我想在用户模型中创建一个查询,它只返回用户,这些用户拥有具有某些属性的书籍。例如:一个属性可能是条件,如新建或使用。现在给我所有有新条件的书的用户。是否可以使用Ebean方法创建这样的查询?还是我必须使用原始SQL?