喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

【村长请吃饭啊】 ---北京诚聘--- 【你还在犹豫吗?】

上一主题 下一主题
 26  1/3  1  2  3  > 
     
标题: [问题] 如何实现上千万条数据的分页显示?  
 
ddp2010
新手上路
Rank: 1



UID 77550
精华 0
积分 6
帖子 8
金钱 6 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-8-2
状态 离线
如何实现上千万条数据的分页显示?

如何实现上千万条数据的分页显示? 一张表里有千万级的数据记录,如果查询很慢的话,会超时等。
2008-4-19 04:35 PM#1
查看资料  发短消息  顶部
 
火志溟
新手上路
Rank: 1



UID 101527
精华 0
积分 41
帖子 45
金钱 41 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-11-18
状态 离线
[推荐阅读] js如何在框架内获得当前url地址
索引了没有?



www.ydmsh.net
2008-4-19 08:20 PM#2
查看资料  访问主页  发短消息  顶部
 
qiusuo9999
新手上路
Rank: 1



UID 112682
精华 0
积分 7
帖子 5
金钱 7 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-3-4
状态 离线
[推荐阅读] 呃,现在搞discuz!,需要人,以后会搞别的
分页显示,不能把所有的记录都查询出来,用limt把一页的数据查询出来就可以了.在count总数据数.在用楼上说的索引,估计在多数据都没问题.
2008-4-20 12:23 PM#3
查看资料  发短消息  顶部
 
tianfing
金牌会员
Rank: 6Rank: 6
天常的小孩


UID 37514
精华 0
积分 1211
帖子 376
金钱 1210 喜悦币
威望 0
人脉 1
阅读权限 70
注册 2004-10-22
状态 离线
[推荐阅读] 南京招聘Linux+PHP人员,税后4K左右
生成静态,或者把页面内容缓存一下!



希望有一天,能够纯洁的爱上一个人!
QQ:285922205
我来玩 网页游戏
http://www.wlwan.com
2008-4-22 11:23 AM#4
查看资料  发短消息  顶部
 
sp_dzy
新手上路
Rank: 1



UID 115960
精华 0
积分 10
帖子 13
金钱 10 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-3-24
状态 离线
[推荐阅读] 偶与教育界mm的精彩对话。【组图,多图杀猫】
分页缓存和limit在加索引.
我觉得是没问题.
2008-4-25 09:17 PM#5
查看资料  发短消息  顶部
 
v
新手上路
Rank: 1



UID 100301
精华 0
积分 4
帖子 11
金钱 4 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-10-30
状态 离线
[推荐阅读] 招聘PHP技术!!

1千万数据  假如50个一页 那也有20w页吧 你们谁见过哪家网站列表给出20w页的。。。。。

数据量大了就转变思路限制分页总页数   这样就好实现了
2008-4-26 01:35 AM#6
查看资料  发短消息  顶部
 
只爱一个人 (只爱一个人)
论坛元老
Rank: 8Rank: 8
超级管理员



UID 29639
精华 0
积分 3815
帖子 1604
金钱 3815 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2004-6-26
状态 离线
[推荐阅读] 招聘PHP技术!!
我很明白的告诉更位老大,数据量达到海量的时候,再好的索引,最后的SQL也会超级慢

达到一定量以后如limit 2000000,10 这时候就算你有再好的索引,SQL的查询也不会很快了

如果同时有多人访问这样的页面,你的MYSQL服务器一定会挂死的


我现在用的是折中的办法

好处就是查看前几页会很快,查看后面几页也会很快

但到了分页的中间部分一定也快不了


如:有100万条数据 分页是BY ID号
正常写最后一页是 select * from table where 1 order by id desc LIMIT 999980 ,20

这样的SQL肯定快不了,就算有再好的索引也不会快

但现在换种写法 select * from table where 1 order by id ASC LIMIT  0,20 这也取最后一页的数据
取出来的数组用PHP自己再排下就好了

坏处就是:最后一页的数据也永远是20条,有可能你正常分页,最后一页,只有一条,但这里显示也会有20条

当然,如果你不怕麻烦,你肯定可以算出,最后一页,正常情况应该是多少条,改一下LIMIT 就可以了




customavatars/296392.jpg
2008-4-28 03:04 PM#7
查看资料  访问主页  Blog  发短消息  顶部
 
83687 (MR.HU)
高级会员
Rank: 4
小乞丐


UID 80378
精华 0
积分 989
帖子 431
金钱 989 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2006-9-21
状态 离线
[推荐阅读] 找php开发工程师工作
我也看看还有啥答案.



此广告位招租!!!
2008-4-29 04:40 PM#8
查看资料  发短消息  QQ  顶部
 
levie
新手上路
Rank: 1



UID 120800
精华 0
积分 14
帖子 15
金钱 14 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-4-29
状态 离线
[推荐阅读] 怎么用JS返回上层
Select * From table Where ID>=(
Select ID From table limit 2000000,1
)limit 100;
试试这个,效率应该会高些。
2008-4-29 09:27 PM#9
查看资料  发短消息  顶部
 
levie
新手上路
Rank: 1



UID 120800
精华 0
积分 14
帖子 15
金钱 14 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-4-29
状态 离线
[推荐阅读] 跟着ArthurXF来学习调用外部系统命令system() exec() passthru()
Select的字段越多,字段数据量越大,速度就越慢
虽然看起来好像查询的次数更多一些,
但实际上是以较小的代价换取了高效的性能,
非常值得的
2008-4-29 09:32 PM#10
查看资料  发短消息  顶部
 26  1/3  1  2  3  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.056290 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP