大型网站如何做分页?

发布于 2024-11-06 05:07:59 字数 70 浏览 0 评论 0原文

大型网站如何处理搜索结果的分页,以便第 n 个页面的加载速度大致与第一个页面一样快?例如,谷歌、Youtube、Hulu 等。

How do large sites handle pagination on search results so that the nth page loads roughly as quickly as the first? For example, Google, Youtube, Hulu, etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的背包 2024-11-13 05:07:59

YouTube:

抱歉,YouTube 无法提供更多内容
任何查询的结果均超过 1000 条

因此它可能会将前 1k 个结果缓存在类似于 memcached blob 的内容中。

Hulu:限制为 3000 个结果。可能也被缓存了。

谷歌:这纯粹是黑魔法。请记住,它使用大量分布式计算(而不是简单的数据库查找),并且可能缓存任何查询的前 n 个结果,以及每个结果页面的“html 就绪”结果和中间结果(请参阅 动态编程)。

总结一下:您对任何页面的第一次查询可能需要更多时间,因为它可能导致引擎启动数据库/分布式搜索,但是,它的结果(远远超过您将显示的数量)将可能会在非常快的缓存中保留一段时间,以便为同一查询提供任何页面,而不会再次给数据库带来压力。

Youtube:

Sorry, YouTube does not serve more
than 1000 results for any query

so it probably caches the first 1k results in a something similar to a memcached blob.

Hulu: limits to 3000 results. Probably cached as well.

Google: It's pure black magic. Keep in mind it uses a lot of distributed computing (and not a simple db lookup), and probably caches the first n results for any query, and also "html ready" results for each result page, and intermediate results (See Dynamic Programming).

To summarize: Your first query to any page might take more time since it can cause the engine to start a db/distributed search, however, it's results (much more than the amount you will be showed) will probably be kept for a while in a very fast cache for serving any page for the same query without stressing the db again.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文