关于海量数据分页的问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:43:39
数据库SQLServer2005

buy 表有以下字段:
id 自动增长列,非聚集索引
ProductMaxSort 非聚集索引,产品所属的类别
ZhongFen 计算列,聚集索引,字段有重复
(字段太多仅列出需要使用的)

我自己有几个思路,由于自身技术原因不知道是否可行.

1、每一次取出符合条件的数据的ID 200条放入一个临时表中(我用的方法是"not in 临时表ID"),再跟据临时表的ID用联合查询出相关的记录,取前几个top 200效率还行,但是越靠后速度就越慢了,最后我还是放弃了此方法。

2、想用ID做分界线,但是ID字段没有聚集索引所以行不通(我想把全部符合条件的ID排序,再用ID做分界线取相应的记录,我试过这样速度太慢而且打乱了“ZhongFen ”字段的排列顺序,所以我还是不能使用),有没有办法定位到指定的ID行,再往前取出符合条件的记录。

数据记录上百万条,那位大哥能给出一个高效的数据库分页的方法。要求不能改变“ZhongFen ”字段的排列顺序。

这问题困了我几天了,没法了第一次来到这里提问,我的分就这么多了,希望有人能够帮帮我。
回复wanluo007 ID是唯一字段但ID没有聚集索引,没法判断啊,如果将ID排序后再作分界,那就将原来的顺序打乱了

首先要优化数据库,比如建索引之类的 然后 我记得SQLServer可以直接查询分页的好像是用limit来限制的 200w 数据不算多的

将关键字段建立索引,
并且在分页的时候最好是按照建立了索引的字段进行分页依据的判断,
呵呵,希望能有帮助,^_^