SQL Server 2005 分页研究和优化(4)
前几次,讨论了sql server 2005的分页和优化,后面谈到目前常用的分页方法在读取后面分页是会越来越慢。后面给了一个高效的分页方法
,但是想一下,对单个表并且在索引覆盖情况下是很高效的,但实际业务逻辑很复杂,取的数据可能来自多个表,这样的方法是不好的。
那到底是用哪个分页方法啊,这两天看了一下,淘宝网 (http://www.taobao.com/) 和 易趣网 (http://www.eachnet.com/)这两的海量数据库分页方法,
目前淘宝是用的Oracle数据库,易趣网不太清楚是哪个数据库,不管是那个数据库,查询原理一样,在分页时都会遇到这样问题。
在淘宝网,输入“1”查宝贝的数据,就发现有4,395,524个结果,看看下面的分页,最多让你分100页,也就是说,淘宝最多看到100页数据,其后面的数据是不让你看的。为何,个人认为:
1,可能就是分页效率低下,为保证网站的高性能,后面数据不让查询,
2,也可能是业务上认为没必要提供100页以后的数据,客户不会关心了。
分页的问题,淘宝网的陈吉平在《Oracle数据库性能优化》一书中,就有提到分页效率和对策。
同样在 易趣网,输入“1”,查物品,有334页个分页数据。一共有10020个物品,如果你在输入500页的数据,系统提示出错。后面数据不让查询的。
既然大型的门户网站都这样,我们在做Web分页时,可以考虑这样的手段,
采用通用的分页方法时,这时对分页页码做个一个限制。(如最多显示500页等)
以上是个人观点,如有不对,希望大家批评指正。