今天在用google的时候突然间想到了一个问题,google是不是真的有那么快的搜索速度,或者,它利用了一些我们可能没想到的手段来“欺骗”我们。我现在所能想到是的,由于我们访问网页的限制(每页只能看十个搜索结果),google是否每次只在一个服务器中(听说google用了几千个服务器)搜索我们想要的东西,把这些搜索得到的结果送到我们的服务器上(也就是我们的网页上显示了搜索结果的第一页),而当我们选择了第二页的时候,它再在服务器中继续搜索(可能还是在原来的那个服务器中搜索,也可能是在另一台上搜索了,这要看原来的服务器是否已经搜索完毕)。我这样想,并不是没有什么根据。我们可以看一下,每次得到的搜索结果的个数,都写明是约有多少个,如果真的是在提交搜索请求的时候就把所有可能的网页都搜索出来了,那肯定不可能是大约的数目了。而且,从实现的角度来想(也许我的思想有点幼稚吧),搜索一些常用词得到的结果是很大的,如果把这些结果都记录下来,那么,对于单一的用户来说是可能的,但如果对于成千上万的人来同时访问(和同时搜索),就算有几千台高性能服务器,我想效率也是不高的。或者有人会问,如果搜索的结果只有几个,可以在一页中显示出来,那么这该怎么解释。我认为,对于这一情况,google是有自己的一套做法的。我个人的认为是,google可能认为如果在一台服务器中只有几个命中的记录,那么在其它服务器中的命中记录应该也会只有几个(很多的概率是很小的,除非服务器是分语言来存储记录的,如果是这样做,反而会更好,可以根据搜索词的语言来指定要访问哪些服务器),因此,它只把在一台服务器上得到的命中记录返回给用户,并且指出,可能还有一些其它的符合条件的记录(这个大家应该用看过吧)。如果google真的是这样做的,那我们就不难理解为什么它的搜索速度会这么快了------一个用户同一时刻只会用到一个服务器(大部分情况下)。
我忘记在哪里看到有人说google是6000多台服务器连起来的,那么,我想,google的访问量还不至于多到每秒6000次吧。这样,在同一时刻把不同的用户分配到不同的机器上去,速度想慢点也难了。
以上这些只是我突然间想到的东西,如果有不同的意见可以讨论一下,不要骂我幼稚就行了。呵呵