引用

https://cloud.tencent.com/developer/article/1048654
感觉已经写的很好了,就不瞎逼逼了QWQ

最近遇到的一个问题,一个服务(分拨中心)需要从多个地区的相同服务中提取数据,然后对数据进行统计分页。
分页的总页数,可以通过每个服务的总值相加除页面大小求得,这个容易解决。
但排序分页就成了一个大问题。
第一页,要排前10个就需要每个服务取前10,然后汇总再排序。
第二页,要排11-20,但我需要每个服务前20,然后汇总再排序。
以此类推,越是后面的页,我们展示一页,而产生的代价就越大。
这是一个必须要解决的问题!

很显然,解决这里问题,我们要做的,就是获取全局的视野!引用文章上提到了四种方法。

  • 方法一:全局视野法
  • 方法二:业务折衷法-禁止跳页查询
  • 方法三:业务折衷法-允许模糊数据
  • 方法四:二次查询法-复杂度在 O(页大小*服务数)