实践:从库分页参数

最近在写用户账单的功能,需要查询到两年千的消费记录,但是目前消费记录日志表里面记录的是一年内的数据,对于一年前的记录都记录在了归档表。因此想要查询两年前的数据就必须要查询归档表。

对于正常的情况,先查主表,当主表中的数据不够的时候再查归档表。
现在的难点是,如果对归档表里面的记录进行分页操作,接口中传入的分页参数都是针对于主表来说的。假设主表的分页参数是pageNum,pageSize

  • pageSize
    好确定,就是( pageSize - 主表查出个数)
  • offset
    对于偏移量,也就是从库从什么位置开始查,需要研究。从库开始查的位置
    (pageNum - 1)*pageSize - firstTotalNum
  • 其中firstTotalNum是主库中符合条件的全部记录数
    其中(pageNum - 1)*pageSize是主库开始的偏移量,这个时候因为主库已经查完了,所以就从从库开始查,但是这个可能会存在负数,这个时候当然情况是主库查了一部分还没查完一整页,因此这个时候从库开始的下标应该是0。

所以最终从库的开始偏移量应该是

Math.max((pageNum - 1)*pageSize - firstTotalNum,0)

你可能感兴趣的:(javascript,数据库,开发语言)