深度分页的产生:
当一个有类似语句 select * from t1 limit startIndex,pageSize,如果这个startIndex只非常大即要检索50条数据需要偏移一个较大的偏移量,极大的消耗性能。
优化方式:
1、业务层面:在前端展示分页选择器,只能逐页翻,增加业务操作的工作量。
2、UI交互:每次分页返回最大的id,前台再回传到中台,在中台通过where子句过滤数据。
3、XML:子查询的方式(通过in获取id)。
4、依赖分布式搜做引擎ES:
4.1、from,size浅分页
4.2、scroll深分页,不适用跳页的场景
4.3、search_after深分页 通常用在异步数据回调到出,和scroll一样吧不适用跳页