小談php處理 大併發 大流量 大存儲php
一.判斷大型網站的標準:css
1.pv(page views)網頁的瀏覽量:mysql
概念:一個網站全部的頁面,在24小時內被訪問的總的次數。千萬級別,百萬級別linux
2. uv值(unique visitor)獨立訪客nginx
概念:一個網站,在24小時內,有多少個用戶來訪問咱們的網站,達到10萬web
3. 獨立ip 重點內容redis
概念:一個網站,在24小時內,有多少個ip來訪問咱們的網站。sql
uv值約等於獨立ip若是要考慮局域網,uv值略大於獨立ipmongodb
二 大型網站帶來的一些問題數據庫
1 大的併發。
併發量:在同一時間點(1秒內),有多少個用戶同時訪問咱們的網站。對同一個網址,同時刷新瀏覽器,。達到500 就很是大了,
假如併發量是500 pv值是多少,500*3600*10
2 大流量
網站須要的大的寬帶 10G
3. 大的存儲
網站中的數據庫,表的容量成海量趨勢,GT級別,如何快速的查找處想要的數據。
三 大併發的解決方案:
1.負載均衡器:
硬件:f5-bigip性能比較好,立竿見影,價格昂貴 通常適合於大型網站公司,網遊公司。
軟件:
lvs(linux virtual server)linux虛擬服務,加入到linux的內核中,
nginx:能夠作web服務器(apache),還能夠作負載均衡。
2. 負載均衡實現的方式:
主要有:
輪詢技術:客戶端請求服務器輪流轉發。
ip哈希:同一ip地址的客戶端,始終請求同一臺服務器。
最少連接:把請求轉發給最空閒的服務器。
3,集羣:
主要是解決計算機單點故障,在一個集羣中的計算機,只有一臺計算機工做,其餘計算機處於休眠狀態,監視正在工做的計算機,當正在工做的計算機出現問題,則休眠的計算機馬上接替工做。
四 大流量解決方案:
一、防止咱們的網站資源被盜鏈。
能夠採用一些非技術手段防止被盜鏈,圖片上添加水印
2.減小http請求,
只要手段就是合併js文件,css文件,背景圖片的文件。將瀏覽器須要的樣式文件或者js文件,合併成一個樣式或js文件,好比經過背景圖片舉個例子。
3. 啓用壓縮
減小數據傳輸的數據量,常見的壓縮格式是: gzip deflate
4 經過瀏覽器緩存數據內容,
在網站中有一些資源,好比js文件 css文件一些圖片文件,更新的頻率比較少,經過這個設置的http的
cache-control expires屬性來進行設置緩存,能夠設置緩存的文件類型,設置緩存的緩存週期,。
5 能夠把比較佔用流量的一些資源,單獨組建一個服務器,
好比圖片服務器,視頻服務器等。
五 大存儲決絕方案:
1.緩存技術:
經過緩存技術,達到不查詢數據庫或者少查詢數據庫的目的。
計算機的訪問速度,內存>硬盤文件>數據庫
緩存技術主要有:
硬盤緩存(頁面靜態化),把一個查詢數據庫的頁面變成一個不查詢數據庫的頁面
內存緩存:把常常查詢的數據保存到內存裏面,下次查詢數據時候直接在內存裏面查詢。
(memcache/redis/mysql的memory引擎)
2.在設計表的時候,要知足3範式
第一範式是: 原子性,字段不能再分割了,只要是關係型數據庫就自動知足第一範式:
數據庫的分類:
關係型數據庫:有行和列的概念,二維表格,常見的關係型數據庫:mysql, sql server oracle db2
非關係型數據庫(nosql)面向集合和文棟的,沒有行和列的概念常見的有redis/mongodb等,
第二範式:在一個表中不能有徹底相同的記錄,能夠經過設置一個主鍵。
第三範式:表中的字段不能冗存儲。
3 要給表添加適當的索引:索引很是重要的,能夠提升查詢速度。
常見索引有:主鍵索引, 惟一索引 普通索引, 全文索引
4 要建立適當的存儲過程函數 觸發器等
5 讀寫分離(只從服務器)
6 分表技術(垂直分割和水平分割)
7 分區技術
把一個表的數據內容,在不一樣的區域存儲。
8 升級mysql服務器(添加配置:加大內容 64位)
9 要對sql語句進行調優
select * from tablename 該語句不要使用,要按需查詢,須要那個字段的數據,就查詢那個字段的數據,
10 對配置文件進行優化配置
好比配置mysql數據庫的併發量: