1. 程式人生 > >網站整體效能優化方法

網站整體效能優化方法

前臺網站整體優化的思路:
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)反向代理伺服器+圖片伺服器