使数据库中的结果集“可分页”所涉及的原则或实现是什么?
如何在不将记录存储在内存中的情况下对超过一百万条记录进行分页?当有100页时,什么允许从第5页跳到第50页?
我正在寻找一种关于分页是如何完成的伪代码类型的解释。
发布于 2012-08-03 12:59:41
基本前提是要记住以下几点:
var numPages = totalNumRecords / PAGE_SIZE;Page = 1进行分页所需的元素
Skip((page - 1)*PAGE_SIZE).Take(PAGE_SIZE);
因此,当您点击结果的数据源时,您将跳到您想要的记录集,并获取规定的数量。希望这是有意义的。
发布于 2012-08-03 12:54:35
通常,在“下一步”按钮的URL中有一些内容,用于修改呈现页面的数据库查询。然后,呈现的页面在下一个URL中颠簸索引。
因此第一页可能是具有限制20 SQL请求,第二页也具有限制20但也具有偏移量20。
因此,在该模型中,基本上一次只加载20个项目,但页面还加载了多少个项目已被偏移到如此胖的位置,并更改了"Next Page“URL。
通常,还会有一个函数来检查您相对于项目总数的位置,以便页面知道它是否应该显示下一个链接。
https://stackoverflow.com/questions/11789453
复制相似问题