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

RSS 订阅当前论坛  

上一主题 下一主题
 26  2/3  <  1  2  3  > 
     
标题: [问题] 如何实现上千万条数据的分页显示?  
 
zshtom
中级会员
Rank: 3Rank: 3
初级会员



UID 66877
精华 0
积分 240
帖子 299
金钱 240 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2005-9-23
状态 离线
回复 #9 levie 的帖子

这是一个优化的方法



什么才是优秀的程序员呢?
2008-5-1 08:59 PM#11
查看资料  发短消息  顶部
 
zshtom
中级会员
Rank: 3Rank: 3
初级会员



UID 66877
精华 0
积分 240
帖子 299
金钱 240 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2005-9-23
状态 离线
[推荐阅读] js如何在框架内获得当前url地址
一般网站 都允许看 一定数据量 比如 前 1000页 不可能把所有的都放在那 还有就是 把总数记录在另外的地方 减少数据库查询 但是 有数据修改的时候要操作相应的修改



什么才是优秀的程序员呢?
2008-5-1 09:00 PM#12
查看资料  发短消息  顶部
 
k6bar
注册会员
Rank: 2



UID 110114
精华 0
积分 61
帖子 61
金钱 61 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2008-2-14
状态 离线
[推荐阅读] 呃,现在搞discuz!,需要人,以后会搞别的
可以考虑将总数缓存起来,要不然每次都查一次,慢死
另可考虑限制查询啊,我想不是要把所有的数据都拿出来吧
一般也没人能看到最后一页吧
2008-5-4 10:15 AM#13
查看资料  发短消息  QQ  顶部
 
玉面修罗
注册会员
Rank: 2


UID 78111
精华 1
积分 128
帖子 1576
金钱 118 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2006-8-11
状态 离线
[推荐阅读] 如何计算一个时间段的周次
头几页命中比较高。。所以需要把前几页的数据缓存进一个大数组。。。



PHPthink.com
待业中...
2008-5-4 11:51 AM#14
查看资料  发短消息  顶部
 
只爱一个人 (只爱一个人)
论坛元老
Rank: 8Rank: 8
超级管理员



UID 29639
精华 0
积分 3815
帖子 1604
金钱 3815 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2004-6-26
状态 离线
[推荐阅读] 用PHP写的程序,有办法读取ID卡或是IC卡吗?


QUOTE:
原帖由 玉面修罗 于 2008-5-4 11:51 AM 发表
头几页命中比较高。。所以需要把前几页的数据缓存进一个大数组。。。
在海量数据的情况下缓存是必须的

同样做的时候可以考虑一下用户的习惯问题

像查看论论帖子一样,如果帖子数超过50页,一般人都只会看前几页,和最后几页

相对而言中间的25 26 这样的情况看的人就很少的


现在我这边弄的东西,就是折中的取法

减少了很大的数据库压力




customavatars/296392.jpg
2008-5-4 04:55 PM#15
查看资料  访问主页  Blog  发短消息  顶部
 
tianfing
金牌会员
Rank: 6Rank: 6
天常的小孩


UID 37514
精华 0
积分 1219
帖子 387
金钱 1218 喜悦币
威望 0
人脉 1
阅读权限 70
注册 2004-10-22
状态 离线
[推荐阅读] 招聘PHP技术!!


QUOTE:
原帖由 levie 于 2008-4-29 09:27 PM 发表
Select * From table Where ID>=(
Select ID From table limit 2000000,1
)limit 100;
试试这个,效率应该会高些。
我直接就用
Select * From table Where ID>= 2000000 limit 100;




希望有一天,能够纯洁的爱上一个人!
QQ:285922205
我来玩 网页游戏
http://www.wlwan.com
2008-5-6 05:05 PM#16
查看资料  发短消息  顶部
 
sosyxg (sosyxg)
新手上路
Rank: 1
初级会员


UID 29933
精华 0
积分 15
帖子 16
金钱 15 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-7-8
状态 离线
[推荐阅读] 招聘PHP技术!!
我碰到最多的数据就是100多万
说说我的做法吧

1.仍然使用传统的分页,只不过每页不是普通的几十条,可以改为上百条
2.采用ajax的异步传输,做个loading界面,从而更人性化
3.根据你的查询条件优化索引





QQ: 181679118
2008-5-6 07:18 PM#17
查看资料  发短消息  顶部
 
levie
新手上路
Rank: 1



UID 120800
精华 0
积分 14
帖子 15
金钱 14 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-4-29
状态 离线
[推荐阅读] QQ445676667◆福建电信/广东电信/四川电信/100M独享服务器租用托管


QUOTE:
原帖由 tianfing 于 2008-5-6 05:05 PM 发表

我直接就用
Select * From table Where ID>= 2000000 limit 100;
假如这样能实现楼主所期望的分页sql。
2008-5-7 08:50 AM#18
查看资料  发短消息  顶部
 
漠北怪叟
金牌会员
Rank: 6Rank: 6



UID 70640
精华 0
积分 2345
帖子 352
金钱 2345 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-29
状态 离线
[推荐阅读] 怎么用JS返回上层


QUOTE:
原帖由 sosyxg 于 2008-5-6 07:18 PM 发表
我碰到最多的数据就是100多万
说说我的做法吧

1.仍然使用传统的分页,只不过每页不是普通的几十条,可以改为上百条
2.采用ajax的异步传输,做个loading界面,从而更人性化
3.根据你的查询条件优化索引


...
同意,

选多点.再用JS分!




我的博客:http://hjc73.space.mywallop.cn
2008-5-8 01:11 PM#19
查看资料  Blog  发短消息  顶部
 
coldwind (coldwind)
金牌会员
Rank: 6Rank: 6
高级会员



UID 13817
精华 0
积分 2645
帖子 2668
金钱 2645 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2002-4-17
来自 风之谷
状态 离线
[推荐阅读] 跟着ArthurXF来学习调用外部系统命令system() exec() passthru()
1,把表中的text/blob字段移到其他表中
2,尝试分表,比如1000W数据,分成10个表,立即就变得容易多了




PHP5框架:
http://code.google.com/p/i-framework
2008-5-8 01:18 PM#20
查看资料  访问主页  Blog  发短消息  QQ  顶部
 26  2/3  <  1  2  3  > 
     


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


 


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

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