網站整體效能優化方法
前臺網站整體優化的思路:
1. 首頁、文章頁、商品詳情頁、登入頁、註冊等這種頁面內容不常發生變化的可以生成靜態頁(叢集中可以使用反向代理伺服器)
說明:這些頁面中動態的內容使用AJAX來實時獲取
2. 所有的頁面都使用資料延遲載入技術
說明:重新整理頁面時只加載第一屏的資料,下面沒有顯示出來的資料不載入,只有當滾動條下拉到相關的位置時,才取了相應的資料
3. 有些資料需要實時動態獲取不能生成快取,如微博中的動態資料,購物車中的資料等等,這種資料可以通過以下兩種辦法優化
a. 資料庫的優化(好實現、效果好、維護成本相對低)(讀寫分離)(實用)
a0. 資料庫的引數優化
a1. 建立合適的索引
a2. 讀、寫分離
a3. 更大的叢集
b. 使用memcache和redis這種做資料的快取(效果好,成本高、維護成本高)(除非網站規則比較大)
注意:一般把資料比較小,訪問比較的頻繁的資料放到這裡
一般只讀寫的資料用memcache
如果資料結構複雜需要演算法的時可以用redis
a0. 記憶體比較少所以快取的資料有限
總結:一般網站使用讀、寫分離即可
只有瀏覽量非常大,又要求效能時才會把資料全都快取到記憶體中,比如微博這種網站
4. 把網站中一些訪問非常頻繁的資料快取到memcache中(實用)
搭建一個小的memcache存一些網站使用頻繁但資料量小
a. 把session存到memcache中
考慮到:
a1. 存記憶體比讀硬碟快(效能)
a2. 在叢集環境中,預設session機制會出現“session丟失”的問題,可以通過存到memcache中來解決
b. 把可以商品的瀏覽量存到sessoin中,這樣就不用每次更新資料庫了
統計:一般性的商城基本七臺左右就夠了:
2臺數據庫+2PHP服務伺服器+負載均衡+(2+N)反向代理伺服器+圖片伺服器