令牌到分页API的下一页

Nut*_*tel 7 api pagination amazon-dynamodb aws-sdk

我有一个按键排序的服务器上的记录列表,并使用分页API逐个返回段列表.由于项目可以插入列表的中间,因此我将下一页的第一个键作为分页标记返回,以便获取下一页.

但是,我发现DynamoDB使用当前页面的最后一个键来代替查询API,如果下一页不存在则为null.

题:

使用当前页面的最后一项和下一页的第一项作为分页标记有什么利弊?

注意:

至于我返回第一个项目更直观,因为它只有在下一页不存在时才为空.

Mar*_*rcG 8

使用("当前页面的最后一个项目" 兰州化物所),比使用"下一个页面的第一个项目"更好(FINP),因为它涉及的是,在此期间,一些项目被插入这两个项目之间的可能性更好.

例如,假设第一页包含3个按字母顺序排列的名称:Adam/Basil/Claude.假设下一页是Elon/Francis/Gilbert.

然后使用ClaudeLICP,令牌是,而使用FINP,令牌是Elon.如果没有插入新名称,当我们到达下一页时结果是相同的.

但是,假设我们Daniel在获取第一页之后但在获取第二页之前插入了名称.在这种情况下,当我们得到Daniel/Elon/FrancisLICP 的第二页时,我们得到了FINP Elon/Francis/Gilbert.也就是说,FINP会错过Daniel,而LICP 则不会.

此外,FINP可能比LICP消耗更多的计算资源,因为您必须检索一个额外的项目(在上面的示例中有4个项目,而不是仅3个项目).