从数据库“可分页”制作结果集涉及哪些原则或实现?
如何在不将内存存储的情况下分页超过一百万条记录?当有100页时,什么允许从5跳到第50页?
我正在寻找关于如何完成分页的伪代码解释。
答案 0 :(得分:1)
通常,“下一步”按钮的URL中有一些内容可以修改呈现页面的数据库查询。然后,该渲染页面会破坏下一个URL中的索引。
因此,第一页可能是一个有LIMIT 20的SQL请求,第2页也有LIMIT 20但也有OFFSET 20.
所以在该模型中一次只加载了20个项目,但该页面还会加载已偏移的项目数量,并更改“下一页”URL。
通常还会有一个函数来检查您相对于项目总数的位置,以便页面知道它是否应该显示下一个链接。
答案 1 :(得分:1)
基本前提是要记住以下内容:
PAGE_SIZE
)var numPages = totalNumRecords / PAGE_SIZE;
Page = 1
Skip((page - 1)*PAGE_SIZE).Take(PAGE_SIZE);
那么当您点击结果的数据源时会发生什么,您将跳到所需的记录集并采取规定的数量。希望这是有道理的。