2009-07-26 41 views
0

我想知道,那些「文本繁重」的網站,如stackoverflow.com,news.yahoo.com,bbc.co.uk如何在內部存儲他們的文本?文本繁重的網站如何在內部存儲文本?

這些文本是以文本文件存儲的嗎?或存儲在數據庫中?

他們如何應對不斷增加的內容?

回答

1

通常在數據庫中。使用mysql時,通常使用text,mediumtext或longtext。他們與日期,評分和標籤等列一起放在一張桌子上。標籤可能位於另一個表格中,但也可以用逗號分隔在一個表格中。它可能會有所不同。

2

它始終是這些網站後面的某種數據庫。

對於比較小的(stackoverflow,bbc等),一個正常的關係型數據庫應該足夠了 - 比如MySQL,Postgresql或者Oracle。

對於真正大的(易趣,亞馬遜,谷歌)他們通常有某種專有的數據庫解決方案,因爲標準數據庫不能處理這種負載。

+3

我不認爲BBC會算作一個小網站。它是互聯網上最大的內容網站之一。 – 2009-07-26 12:23:52

1

大多數這些網站將使用內容管理系統,將文本存儲在數據庫中。 Stackoverflow讓我們所有人都可以編輯內容,而像BBC這樣的網站只允許他們的記者在他們的系統上添加和編輯內容。

大多數這些網站都會使用某種標記語言來將樣式編碼到文本中。您可以在這裏瞭解StackOverflow使用的標記系統:https://stackoverflow.com/editing-help

爲什麼要使用標記語言而不是僅存儲html?標記允許文本以不同的方式轉換爲不同的輸出和設備。您可能會轉換爲HTML以便在網頁上顯示,但對電子郵件使用不同的轉換,對於某些移動設備使用另一種轉換。

以谷歌搜索Markdown和Textile爲例。你也可以看維基百科的信息。

2

他們如何應對不斷增加的內容?

當數據庫負載變得過重,他們就必須獲得一個單獨的數據庫服務器,如果這還不夠,需要更多或更少的複雜load-balancing設置;)

1

使用數據庫會是更好的方法:

  • 有了大量的內部存儲器,它會頻繁地請求數據。使用文件系統,您將依賴通用讀取緩存機制。
  • 一旦數據庫無法自行處理負載,您可以設置多個鏡像服務器或其他負載平衡方案。比一些文件複製機制更容易維護。
2

BBC使用Drupal,一個開源的內容管理系統。我認爲大多數論文使用某種形式的商業CMS,比如Vignette。所有這些CMS將文本存儲在數據庫中,併爲客戶提供添加文本的簡單方法。以Drupal.org爲例,Drupal也被theonion.com和其他論文使用。

相關問題