如何对订单频繁更新的订阅源进行分页?

时间:2017-11-03 07:34:08

标签: go pagination

我正在开发一个提供帖子提要的API的网络服务。现在这些帖子是按时间顺序组织的,我在标记之前和之后用不透明分页,基本上是时间戳。但是,我们希望从按时间顺序排序的转换为算法转换。虽然我可以计算帖子分数并发送第一页数据,但我不确定如何分页。我想快照它并捆绑200个排序的帖子ID并将它们序列化为令牌的HMAC blob,但这对于每个请求来说都是一个非常重要的开销。有没有更好的方法来处理这种分页?

1 个答案:

答案 0 :(得分:0)

如果您可以在数据库中存储帖子分数,您可以对它们建立索引并快速访问它们。无论如何,首页会很快。如果您需要通过大范围标准方法进行分页,order by rating desc limit 50 offset 10000将会很慢。在这里,您可以找到第二个订单字段 - 例如时间戳。如果有几个帖子具有相同的口粮 - 哪一个应该在顶部?将此字段添加到排序索引和查询数据库,如where rating < ..., timestamp <... order by rating, timestamp

如果您经常重新计算评分,我建议将其存储在post_id, rating这样的单独表格中。查询此表以查找post_id s - 它应该更快,然后遍历整个表并加入帖子。