接口游标分页
由于数据库本身的的限制(以MySQL为例),以 page_num,page_size 为代表的偏移分页方式不可避免的会遇到深分页问题。
不过用户若要找符合条件的少量数据,通过翻页则十分低效,且大多用户也不会往后翻很多页,故对于C端筛选数据场景,限制分页数量增加筛选条件才是标准解决方案。有一些场景需要返回大量数据且附带一些查询条件,这种通常是 B端 业务,例如一些统计、成效数据。这时就必须要解决深分页问题。
不过,只要还用 MySQL 就不可避免受到 limit 的限制,所以 page_num,page_size 不能再用,需要使用基于游标的分页。
select id, field1, field2, field3 from table limit 10
上面是一个不带 where 筛选条件的分页语句,id 是自增字段,若每页10条数据,则上面是第1页
select id, field1, field2, field3 from table limit 10 offset 10
select id, field1, field2, field3 from table where id > 10 limit 10
select id, field1, field2, field3 from table where field1 >= a and field2 = b limit 10 offset 10
select id, field1, field2, field3 from table where field1 >= a and field2 = b and id > x limit 10
select id, field1, field2, field3 from table where field1 >= a an