超大的分页一般从两个方向上来解决
数据库层面
这也是我们主要集中关注的
虽然收效没那么大
类似于
这种查询其实也是有可以优化的余地的
这条语句需要
数据然后基本上全部丢弃
只取
条当然比较慢
当时我们可以修改为
这样虽然也
了一百万的数据
但是由于索引覆盖
要查询的所有字段都在索引中
所以速度会很快
同时如
果
连续的好
我们还可以
效率也是不错的
优
化的可能性有许多种
但是核心思想都一样
就是减少
的数据
从需求的角度减少这种请求…主要是不做类似的需求
直接跳转到几百万页之后的具体某一
页
只允许逐页查看或者按照给定的路线走
这样可预测
可缓存
以及防止
泄漏且连续被人
恶意攻击
解决超大分页
其实主要是靠缓存
可预测性的提前查到内容
缓存至
等
数据库中
直
接返回即可
在阿里巴巴《
!"
开发手册》中
对超大分页的解决办法是类似于上面提到的第一种
【推荐】利用延迟关联或者子查询优化超多分页场景。
说明:
#$%&'
并不是跳过
(
行,而是取
()*
行,然后返回放弃前
(
行,返回
*
行,那当
(
特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过
特定阈值的页数进行
%&'
改写。
正例:先快速定位需要获取的
段,然后再关联:
%+'+,-./0#
表
表
条件
'#-1
评论