• 另一个角度看千万级数据的分页解决方案
    时间:2012-03-22   作者:OK_008   出处:cnblogs.com

    想说这个问题,来源来自于CSDN论坛的一个帖子:《sqlserver2005,1690万的数据量怎么快速分页查询》。在之前也有很多人问类似这样的问题,回复这样的问题,我们一般会从索引,水平分区,垂直分区和硬件的升级等方面考虑。

     分析
     
    对于千万级数据的分页,要求在秒级内响应,解决方案除了刚列的几个方面考虑,这里说一个非常重要的考虑(评估)是,现实意义。
    拿CSDN论坛的那1690万数据来说,我按每页显示200行数据,需要84500页。从站在用户(使用者)角度看,对于查看1万页以后的数据的概率是非常小。假设我们是使用者,让我们一页一页的点,点到100页都够郁闷的了,更何况是1万页后的数据了。这里从现实意义角度考虑,1万页以后的现实意义有多大?
     
     解决方案
     
     根据从现实意义角度分析,对千万级数据的分页,我们呈现给用户的,首先考虑的是用户最关心的,对用户来最有价值的信息。对于过期,没意义的数据需要考虑不呈现给用户。因为呈现没意义的数据,对用户来说多余,对后台服务器来说负荷,严重的可能会导致服务器瘫痪。
     在大型网站都有这方面的考虑,控制呈现的总页数,下面我们列出几个网站:
     
    1、搜狗最多显示100页。
    2、百度最多显示76页,其实你点到76页,显示第75页,感觉这位置有问题,而且相关结果就是1亿个。这里有玩文字的,使用了一个“约”,云里雾里的,蒙人呀。
    很多时候你稍注意下,都是返回1亿个,O(∩_∩)O~。
    3、测试Google,大概分页最大页范围是71-79页,它好一点就是没像百度笼统用“1亿”。
    4、淘宝的宝贝搜索最大页是200页。
     
    小结
     
     从前边的问题到分析,及解决方案,我们可以了解对千万级数据分页的处理,最重要的一个评估方面就是,现实意义,需要多站在使用者角度分析问题,参考成功案例,从而找到可行的解决方案。

    网友留言/评论

    我要留言/评论

    相关文章

    NoSQL 为什么会崛起:NoSQL产品越来越火,NoSQL产品通常以其高性能,强扩展性和高容错性为大家所称道,我们在问为什么NoSQL会流行起来的时候,或许应该问一下为什么这些功能会变得这么重要,下面本文列举一下6个原因。
    SQL语句查询优化技巧:对于程序开发人员,我们要做到不但会写SQL,还要做到写出性能优良的SQL。不同的SQL对于程序的执行会有很大的区别,特别是对于大并发量的程序。下面本文将给大家提供一些SQL书写以及优化技巧,向往会对大家受益匪浅。
    PHP开发者常犯的MySQL错误总结:数据库是WEB大多数应用开发的基础。如果你是用PHP,那么大多数据库用的是MYSQL–也是LAMP架构的重要部分。
    MongoDB的学习记录:MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。这么好的东东一定要学习一下了,虽然木有在实际项目中运用,还是记录一下自己的总结。
    MySQL中varchar类型最大长度研究:工作当中经常被问到一个问题:MySQL中varchar最大长度是多少?这不是一个固定的数字。本文简要说明一下Mysql限制规则。
    Php+Mysql注入专题教学:攻击是现今最流行的攻击方式,依靠它强大的灵活性吸引了广大黑迷。 OK,这一期我将给大家伙仔仔细细的吹一吹php+mysql注入,一定让你满载而归哦(谁扔砖头哩!)。 本文主要是为小菜们服务的,如果你已经是一只老鸟呢,可能某些东西会感觉比较乏味,但只要你仔细的看,你会发现很多有趣的东西哦。
    PHP+MYSQL注入实例与防范措施总结:做网站安全十分重要,最近总结了以下SQL注入最常见的例子和相关的防范措施,在此与大家共享,希望对大家有所帮助。 另外作为程序员应该牢记的一句话:一切用户输入的都是不安全的。
    Replication优化的一些个人总结:这两天有空看了一下ppc2009大会的一些pdf,发现这次关于Replication的讨论还是很多的,很多内容都很实用,就总结了一下。本人英文水平水平有限,难免有翻译的不对的地方,有疑问欢迎讨论:)