大型网站如何处理搜索结果中的分页,以便第n页的加载速度与第一页大致相同?例如,谷歌,Youtube,Hulu等。
答案 0 :(得分:3)
Youtube:
抱歉,YouTube不提供更多服务 任何查询的结果超过1000
所以它可能会将第一个1k结果缓存到类似于memcached blob的内容中。
Hulu:限制为3000个结果。也可以缓存。
谷歌:这是纯粹的黑魔法。请记住,它使用了大量的分布式计算(而不是简单的数据库查找),并且可能会缓存任何查询的前n个结果,以及每个结果页面的“html ready”结果和中间结果(参见{{3 }})。总结一下:您对任何页面的第一次查询可能需要更多时间,因为它可能会导致引擎启动数据库/分布式搜索,但是,它的结果(远远超过您的数量)显示)可能会在一个非常快的缓存中保留一段时间,以便为同一查询提供任何页面,而不会再次强调数据库。