大型网站如何进行分页?

时间:2011-05-11 18:43:48

标签: database pagination scalability

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

1 个答案:

答案 0 :(得分:3)

Youtube:

  

抱歉,YouTube不提供更多服务   任何查询的结果超过1000

所以它可能会将第一个1k结果缓存到类似于memcached blob的内容中。

Hulu:限制为3000个结果。也可以缓存。

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

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