一般來說這和資料庫的正規化(normalization)有極大的關聯性,但除了把工作丟給 DBA(DataBase Administrator) 之外,還可以從幾個面向來思考 ───
- 網站的功能需求
這往往取決於網站提供資訊的方式,例如社群網站有各種討論版的總覽、討論版內有話題列表、然後是討論串的內容等等,當然也總是有最新討論的話題摘錄。
這可以濃縮成二個重點:在導覽內容上循序漸進;在氛圍營造上突顯特色。
表現在功能需求上會變成──
- 資訊的陳列
例如新聞列表、產品列表、討論版總覽、....。它的特色是多樣化,設計方式隨網站、內容甚至使用者愛好不同而異。
- 資訊的展示
例如部落格文章、產品介紹、討論串內容、....。它的特色是差異極大,如部落格文章的多樣、產品介紹的複雜、討論內容的龐大。
- 資料的更新頻率
從上述的內容中來看更新頻率,可以發現陳列方式的更新頻率大於展示內容。
舉部落格的例子來說,一篇文章寫好後,除非作者去修改內容,否則內容是永遠不變的。然而這篇文章在部落格中陳列時,卻會因為時間、新文章推擠、....各種可能的因素,而改變他出現的地方。
從實體店面來看則是,銷售的商品(內容)不變,但可能排放的位置(陳列)會經常性的調整。所以,陳列資訊的更新頻率是遠高於展示內容的。
- 資源的有效運用
網站的資源不外乎主機運算能力、記憶體等等(頻寬不在討論之列)。
要如何有效運用資源?簡單來說,就是只作絕對必要的運算。
回到資料庫的範疇來看,如果一個網站的文章內容和統計資訊放在一起,那麼資料庫就會變得龐大。而當統計資料在更新時,就必須連同不變的文章內容一起寫回主機,增加了硬碟IO的時間。甚至,如果文章內容更新頻率極低,那麼將內容轉為靜態檔案,就可以減少資料庫佔用的記憶體數量。(當然這必須在記憶體資源和硬碟IO速度上評估最佳作法)
所以,
網站效能除了靠資料庫正規化之外,還必須仔細分析資料的應用、更新和資源分配。有幾點必須注意的:
(閱讀全文)