2010-11-08 63 views
3

我照顧一個大型網站,並一直在研究其他類似的網站。特別是,我看了一下flickr和deviantart。我注意到,雖然他們說他們有很多數據,但他們只是展示了很多數據。顯示較少數據的大網站

我想這是因爲性能的原因,但任何人都有一個想法,他們如何決定顯示什麼和不顯示。經典示例,轉到flickr,搜索標籤。請注意頁面鏈接下方顯示的結果數量。現在計算哪個頁面,將轉到該頁面。您會發現該頁面上沒有數據。事實上,在我的測試中,flickr說有5,500,000個結果,但只顯示了4,000個。這是怎麼回事?

大型網站變得如此之大以至於他們不得不開始讓原有數據離線? Deviantart有一個回調函數,但不太確定它的功能。

任何輸入將是偉大的!

回答

1

這是一種性能優化。如果您已經獲得4000個結果,則無需掃描整個表格。用戶不會轉到第3897頁。當flickr運行搜索查詢時,它會先查找4000個結果,然後停止並不花費CPU時間和IO時間來查找無用的附加結果。

+0

好的,我明白了。所以,現在我知道他們爲什麼這樣做了。我們如何看待他們呢?他們使用分頁,所以你認爲在第115頁後他們只有代碼說,停止提供服務和運行查詢? – David 2010-11-10 10:18:15

+0

您可以直接在SQL查詢中設置限制。像「選擇*從日期按日期限制1000」。這個技巧在關於SQL優化的每本好書中都有描述。 – 2010-11-10 10:53:31

0

我想它是有道理的。搜索時,如果用戶沒有點擊任何鏈接,直到頁面400(假設每個頁面有10個結果),那麼無論用戶是白癡還是爬蟲都以某種方式參與其中。

認真說起來,如果沒有有利的結果是產生了直到40頁,有關公司可能需要解僱所有的搜索隊&採用Lucene的或獅身人面像的:)

我的意思是,他們會好起來努力改善他們的搜索準確性要高於面對基礎架構問題,試圖展示超過4000個搜索結果。