MySQL百万以上数据分页实例(升级上一贴)

boy 2010-04-13 02:54:36
记录在一百万(最好是在八十万)以内时,可以参照上一贴http://topic.csdn.net/u/20100201/16/dc9ad7d7-840b-4ded-9d7a-d94db5bc235f.html。如果超过了这个数据,最好只以主键为条件进行分页

取总数: Select SQL_BUFFER_RESULT count(id) as all_ID from my_tab
总页数: 总数/每页条数
最后一页的条数: 总数%每页条数

查询数据:
select id,title,price from my_tab m INNER JOIN ( select id as my_id from ( select id from my_tab order by id desc limit 100,100 ) as tmp ) as temp ON my_id=id

第一步、按照最快原则,以主键id作为条件排序 ( select id from my_tab order by id desc limit 100,100 ) as tmp

第二步、按照最少原则,只取回当前所需的记录,而且只取id ( select id from my_tab order by id desc limit 100,100 ) as tmp

第三步、按照最快原则,以主键id作为条件取回所需的信息 select id,title,price from my_tab m INNER JOIN ( ... ) as temp ON my_id=id

显示效果请看实例:http://58.ebweek.com
有不足之处请大家拍砖!
...全文
456 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfd406635982 2010-07-28
  • 打赏
  • 举报
回复
mark
hitexam 2010-04-27
  • 打赏
  • 举报
回复
谢谢,帮顶
永生天地 2010-04-26
  • 打赏
  • 举报
回复
学习 帮顶
Tanhualin 2010-04-25
  • 打赏
  • 举报
回复
mark,感谢分享心得。
crazylaa 2010-04-22
  • 打赏
  • 举报
回复
大数据量的分页是个永恒的话题~~~~

感谢分享。
foolbirdflyfirst 2010-04-22
  • 打赏
  • 举报
回复
mark,感谢分享心得。
懒得去死 2010-04-21
  • 打赏
  • 举报
回复
我记得我以前在公司写过一个SP,是不停的循环ID,然后得到分页的数据。效率非常高。
lizhong0427 2010-04-21
  • 打赏
  • 举报
回复
学习学习
lp19890601 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]
如果数据量这么大,还有一种方法,是通过估算来得到起始ID xx,然后 where id>xx limit 100
[/Quote]

同意,根據分頁,下一頁,id>xx,上一頁 ,id<xx limit 100
sgtzzc 2010-04-18
  • 打赏
  • 举报
回复
学习.
wwwwb 2010-04-13
  • 打赏
  • 举报
回复
分页没有什么什么好方法,一般用TOP、LIMIT之类的,再与工作表连接
ACMAIN_CHM 2010-04-13
  • 打赏
  • 举报
回复
如果数据量这么大,还有一种方法,是通过估算来得到起始ID xx,然后 where id>xx limit 100

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧