1、什么是超大分页
当一个表的行数大小达到百万及以上这种量级时候,毫无疑问产生超大分页
2、从数据库方面解决
- 利于id进行子查询
3、从需求的角度
- 减少这种请求,以及防止ID泄漏且连续被人恶意攻击.
4、主要措施
- 解决超大分页,其实主要是靠缓存,可预测性的提前查到内容,缓存至redis等k-V数据库中,直接返回即可
5、《Java开发手册》参考
- MySQL并不是跳过offset行,而是取offset+N行,然后舍弃前offset行,返回N行,当offset特别大的时候,效率就特别低下,要么控制返回的总页数,要么对超过特定阈值的页数进行SQL改写
- 利用延迟关联或者子查询优化超多分页场景;先快速定位需要获取的 id 段,然后再关联