码迷,mamicode.com
首页 > 数据库 > 详细

mysql 分页

时间:2019-07-01 21:30:32      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:pre   where   bsp   tween   连续   sel   mysql   weight   sql   

一、简述

1、直接使用limit分页,越到后面越慢
2、数据库的id不是连续的,因此不能使用between and
3、数据库的索引稍微快一点,但索引的遍历依旧很慢
    select * from tb1 where id in(select id from tb1)

二、方案

1、只有上一页和下一页(效率最高)
a)、关键
    记住这一页的最大值和最小值
b)、实现
max # 最大值
min  # 最小值
下一页:
select * from tb1 where id > max limit 10;
上一页
select * from tb1 where id < min order by id desc limit 10;
2、中间有页码
5, [6], 7, 8, 9
a)、关键
    页码增量和当前页的最大值和最小值
b)、实质
max # 最大值
min # 最小值
n # 页码增量
下第n页:
select * from tb1 where id in(select id from (select id from tb1 where id>max limit n*10) as B order by B.id desc limit 10);
上第n页:
sleect * from tb1 where id in (select id from (select id from tb1 where id<min order by id desc limit n*10) as B order by B.id desc limit 10);

 

mysql 分页

标签:pre   where   bsp   tween   连续   sel   mysql   weight   sql   

原文地址:https://www.cnblogs.com/wt7018/p/11116694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!