五月 08
加入書籤 Google Bookmarks HemiDemi Del.icio.us MyShare Baidu Yahoo! My Web Digg technorati furl YouPush udn共享書籤 Fiigo網路分享書籤

網站設計由傳統的靜態網頁(static pages)轉為採用資料庫的動態網頁設計已經早被大家所接受。但是,隨著資料量的增加、網站功能的複雜化、互動頻率的增加,一昧地採用資料庫+程式去即時產生網頁,也一再出現效能下降的警訊。

有鑑於此,許多因應的技術就被發展出來了,包括:

  • 提昇主機規格
    這是老方法,免不了每隔幾年就應該評估一下,一來確保主機的穩定,再者也不應和硬體發展有太大的落差。
  • 擴大服務平台來分擔負載 Load Balancing
    和上一個方法不同,是由單一主機轉為多重主機的方式去規劃,適用於大型的網路平台。
  • 移植到大型伺服器矩陣
    目前Amazon的S3服務租賃、Google的Application project都是提供一個超大型的運算及儲存環境供網站經營者使用。前者為付費式的服務;後者為測試中的服務,推測會採用和 Google apps 一樣的作法,免費和付費並存的方式。
  • 轉存為網頁快取 cache
    這個作法適用於網頁內容或產生邏輯較為複雜的情況,但相對的,快取檔案的更新機制也會讓網站邏輯更複雜(只是減少了運算頻率和重複性),而快取的網頁中必須不包含隨機產生的內容(如廣告)。
  • 產生 meta records
    這個作法是把需要花費較多運算而產生的資訊先算好,然後寫入資料庫當小抄,作為後續運算時取用參考的依據。好處是依然延續動態網頁的產出機制,只作部份的簡化,管理起來較為單純,也比較不花空間。
  • 應用 SQL view
    大多數的 SQL server 都支援 view 的功能,連MySQL近來也都支援了。view的作法是把部份資料庫的內容暫時取出作為參考,事實上和 meta records 的作法類似,但必須符合 SQL server 的相關規範。要用那一種就見仁見智了。

迴響

  1. 叮咚 Says:

    作法是強化資料庫的 index 來提昇資料取得效率,另外透過程式或 stored procedures 來聯動處理 index 的異動。