PHP 大型網站優化 大資料大併發大流量
阿新 • • 發佈:2019-01-08
什麼是大型網站? 大型網站要滿足一下標準.
pv(page views)值, 頁面瀏覽量,一個網站的所有頁面,在24小時內被瀏覽的總的次數, 一般說 到千萬.uv(unique visitor) 獨立訪客: 一個網站的24小時內,有多少個使用者來訪問該網站, 一般說 到10萬
ip值,一個網站的24小時內,有多少個ip訪問。在不考慮內網和區域網的情況下,uv 等於 ip, 如果考慮的話,uv值略大於 ip,一般說 到10萬
大型網站帶來的問題
大併發
概述: 在同一個時間點,有大量的客戶來訪問我們的網站,如果訪問量過大,就可能造成網站癱瘓。 大流量
概述: 當網站大後,有大量的圖片,視訊,flash, 這樣就會對流量要求高,需要更多更大的頻寬.(花錢)
大儲存
概述:你的資料量會成海量的資料,如果我們的資料放入一張表,是無法應對的。可能對資料儲存和查詢出現問題
大型網站的常見處理方案
大併發的處理方法(對架構分層+負載均衡+叢集)
大流量的處理方案
網站圖片儘量使用背景圖。
可以啟用apache自帶的資料壓縮機制(gzip ,deflate) .
使用cdn(content delivery network) 內容分發網路
網站圖片,在不影響觀看的情況下,儘量使用jpg(解析度底),不要使用高解析度。
大儲存的常見解決方案
使用快取技術(記憶體快取[redis,mysql資料庫(memory引擎)],頁面快取(頁面靜態化)優化資料庫
表的設計要合理(滿足3NF) 原子性,唯一性,拆分表
新增索引(主鍵索引|全文索引|唯一索引|普通索引|空間索引)
優化sql語句
分表( 水平分表,垂直分表),分割槽
讀寫分離
優化my.ini配置
軟體硬體應當升級
頁面靜態化
使用php自己的ob快取技術實現使用模板替換技術實現
主流的mvc框架(tp,yii,laravel)模板引擎一般都自帶頁面靜態化 使用ob快取
PHP程式在執行過程中,存在一個程式快取,該快取必須存在,程式設計師無法控制。
PHP程式執行過程中,我們可以開啟ob快取(在php5.2前,預設ob是關閉的,在後面版本預設是開啟的), 開啟ob快取的方法有兩個
a) 修改php.ini output_buffering = 4096,
b) 還有就是直接在php檔案中開啟 ob_start();
PHP程式執行過程中,如果打開了ob快取,那麼echo 資料會被放入到ob中,header資訊都是放入程式快取
當php檔案執行完畢後,就會把ob快取的資料重新整理到程式快取,然後apache封包,返回給瀏覽器。