Drizzle | SQL Limit/Offset 分页
This guide assumes familiarity with:
本指南演示如何在 Drizzle 中实现 limit/offset
分页:
限制是要返回的行数(页面大小
),而偏移是要跳过的行数((页面号 - 1) * 页面大小
)。
为了确保分页一致性,必须按唯一列排序。否则,结果可能会不一致。
如果需要按照非唯一列排序,也应在排序中附加一个唯一列。
以下是如何使用两个列实现 limit/offset
分页的示例:
Drizzle 具有实用的关系查询 API,可以轻松实现 limit/offset
分页:
Drizzle 提供简单且灵活的 API,让您可以轻松创建自定义解决方案。以下是如何使用 .$dynamic()
函数创建自定义分页功能:
您可以通过使用 延迟连接
技术来提高 limit/offset
分页的性能。此方法在数据的一个子集上执行分页,而不是在整个表上。
您可以这样实现:
limit/offset
分页的好处:实现简单,页面容易访问,这意味着您可以在不保存先前页面状态的情况下导航到任何页面。
limit/offset
分页的缺点:随着偏移量的增加,查询性能下降,因为数据库必须扫描所有在偏移量之前的行以跳过它们,以及由于数据移动造成的不一致性,可能会导致同一行在不同页面上被返回或行被跳过。
它的工作原理如下:
因此,如果您的数据库在实时中频繁执行插入和删除操作,或者您需要对大型表进行高性能分页,您应该考虑使用 基于游标 的分页。
要了解有关 延迟连接
技术的更多信息,您可以参考以下指南:Planetscale 分页指南 和 Aaron Francis 的高效分页指南。