该代码是百度识别的JS资源负载的一部分。
简单来说,就是网站运行所需要的脚本文件。
这实际上都是关于工具库和功能模块的。
我在这个项目中没有使用类似的东西。
你自己看看吧。

如何在SQL中实现分页查询?OFFSET与FETCH的正确用法

上周我在研究 SQL 分页。

这非常重要。

标准的写入方法是ORDERBY+OFFSET+FETCHNEXT。

例如,请检查第 2 页。

每页 1 0 项。

像这样编写 SQL。
SQL 请选择产品ID、产品名称和价格 从产品 按价格 DESC、产品 ID ASC 排序 偏移1 0行 仅获取接下来的 1 0 行。

这里的 OFFSET 将跳过 1 0 行。

FETCHNEXT 是获取 1 0 行。

请小心。

您需要添加 ORDERBY。

不要添加 ORDERBY。

每次结果可能会有所不同。

例如。
SQL 选择产品 ID、产品名称 从产品 偏移1 0行 仅获取接下来的 1 0 行。

像这样写。

结果一团糟。

这就是为什么我必须组织它。

还有。

如果OFFSET太大。

例如,OFFSET 1 00000。

会迟到。

因为有很多行要跳过。

扫描大量数据。

深层页面可能会超时。

你需要小心这一点。

另一个问题。

当数据改变时。

例如插入和删除。

分页时。

数据可能重复或丢失。

这个问题需要解决。

解决方案。

使用快照隔离。
您还可以按
或 ID 排序。

使用上一页的最后一个ID来检查下一页。

这称为键集分页。

按键设置分页。

性能非常好。

使用索引。

但是,您只能查看“下一页”。

您需要编写自己的逻辑来检查“上一页”。

例如。

上一页的最后一个ID是1 00。

这样写SQL。
SQL 请选择产品ID、产品名称和价格 从产品 其中产品 ID > 1 00 按产品 ID ASC 订购 仅获取接下来的 1 0 行。

这里ProductID > 1 00。

请从1 01 开始检查。

索引很重要。

在 ORDERBY 列上创建索引。

示例:价格 DESC、产品 ID ASC。

这要快得多。

选择哪种方法?
这要看具体情况。

页面不多。

只需使用偏移/获取。

这个页面很深。

使用键集进行分页。

向前和向后跳跃。

可能会被缓存。

报告数据。

使用缓存或物化视图。

总结一下。

标准方法是 ORDERBY+OFFSET+FETCHNEXT。

但是如果OFFSET很大的话,速度会很慢。

让我们改变一下方法。

更改数据时,必须考虑一致性问题。

没有完美的方法。

根据具体情况而定。

这取决于你。