查询超多分页怎么处理?
答:在mysql中使用limit进行超多分页时,应该利用延迟关联或者子查询优化。
因为MySQL并不是跳过offset行,而是取出offset+N行,然后在返回放弃offset行,返回N行,那当offset特别大的时候,效率就会非常低,
要么控制返回的总页数,要么对超过的特定阙值的进行sql改写。
例如:先快速定位所需要获取的id段,然后在关联:
SELECT a*
FROM 表1 a,(select id from 表1 where 条件 LIMIT 100000,20) b
WHERE a.id = b.id;
学习阿里Java规范