導航:首頁 > 數據分析 > 什麼叫把數據集橫向劃分

什麼叫把數據集橫向劃分

發布時間:2025-07-22 03:02:39

⑴ 什麼是網站架構

網站架構,一般認為是根據客戶需求分析的結果,准確定位網站目標群體,設定網站整體架構,規劃、設計網站欄目及其內容,制定網站開發流程及順序,以最大限度地進行高效資源分配與管理的設計。其內容有程序架構,呈現架構,和信息架構三種表現。而步驟主要分為硬架構和軟架構兩步程序。網路架構是現代網路學習和發展的一個必須的基礎技術。
中文名
網站架構
一般認為
根據客戶需求分析的結果
制定
網站開發流程及順序
內容
程序架構,呈現架構
快速
導航
軟架構八個方案
硬架構
機房的選擇
在選擇機房的時候,根據網站用戶的地域分布,可以選擇網通或電信機房,但更多時候,可能雙線機房才是合適的。越大的城市,機房價格越貴,從成本的角度看可以在一些中小城市託管伺服器,比如說北京的公司可以考慮把伺服器託管在天津,廊坊等地,不是特別遠,但是價格會便宜很多。
帶寬的大小
通常老闆花錢請我們架構網站的時候,會給我們提出一些目標,諸如網站每天要能承受100萬PV的訪問量等等。這時我們要預算一下大概需要多大的帶寬,計算帶寬大小主要涉及兩個指標(峰值流量和頁面大小),我們不妨在計算前先做出必要的假設:
第一:假設峰值流量是平均流量的5倍。
第二:假設每次訪問平均的頁面大小是100K位元組左右。
如果100萬PV的訪問量在一天內平均分布的話,摺合到每秒大約12次訪問,如果按平均每次訪問頁面的大小是100K位元組左右計算的話,這12次訪問總計大約就是1200K位元組,位元組的單位是Byte,而帶寬的單位是bit,它們之間的關系是1Byte = 8bit,所以1200K Byte大致就相當於9600K bit,也就是9Mbps的樣子,實際情況中,我們的網站必須能在峰值流量時保持正常訪問,所以按照假設的峰值流量算,真實帶寬的需求應該在45Mbps 左右。
當然,這個結論是建立在前面提到的兩點假設的基礎上,如果你的實際情況和這兩點假設有出入,那麼結果也會有差別。
伺服器的劃分
先看我們都需要哪些伺服器:圖片伺服器,頁面伺服器,資料庫伺服器,應用伺服器,日誌伺服器等等。
對於訪問量大點的網站而言,分離單獨的圖片伺服器和頁面伺服器相當必要,我們可以用lighttpd來跑圖片伺服器,用apache來跑頁面伺服器,當然也可以選擇別的,甚至,我們可以擴展成很多台圖片伺服器和很多台頁面伺服器,並設置相關域名,如img.domain和 www.domain,頁面里的圖片路徑都使用絕對路徑,如<img src="http://img.domain/abc.gif" />,然後設置DNS輪循,達到最初級的負載均衡。當然,伺服器多了就不可避免的涉及一個同步的問題,這個可以使用rsync軟體來搞定。
資料庫伺服器是重中之重,因為網站的瓶頸問題十有八九是出在資料庫身上。一般的中小網站多使用MySQL資料庫,不過它的集群功能似乎還沒有達到stable的階段,所以這里不做評價。一般而言,使用MySQL資料庫的時候,我們應該搞一個主從(一主多從)結構,主資料庫伺服器使用innodb表結構,從數據伺服器使用myisam表結構,充分發揮它們各自的優勢,而且這樣的主從結構分離了讀寫操作,降低了讀操作的壓力,甚至我們還可以設定一個專門的從伺服器做備份伺服器,方便備份。不然如果你只有一台主伺服器,在大數據量的情況下,mysqlmp基本就沒戲了,直接拷貝數據文件的話,還得先停止資料庫服務再拷貝,否則備份文件會出錯。但對於很多網站而言,即使資料庫服務僅停止了一秒也是不可接受的。如果你有了一台從資料庫伺服器,在備份數據的時候,可以先停止服務(slave stop)再備份,再啟動服務(slave start)後從伺服器會自動從主伺服器同步數據,一切都沒有影響。但是主從結構也是有致命缺點的,那就是主從結構只是降低了讀操作的壓力,卻不能降低寫操作的壓力。
為了適應更大的規模,可能只剩下最後這招了:橫向/縱向分割資料庫。所謂橫向分割資料庫,就是把不同的表保存到不同的資料庫伺服器上,比如說 用戶表保存在A資料庫伺服器上,文章表保存在B資料庫伺服器上,當然這樣的分割是有代價的,最基本的就是你沒法進行LEFT JOIN之類的操作了。所謂縱向分割資料庫,一般是指按照用戶標識(user_id)等來劃分數據存儲的伺服器,比如說:我們有5台資料庫伺服器,那麼 「user_id % 5 + 1」等於1的就保存到1號伺服器,等於2的就保存到2號伺服器,以此類推,縱向分隔的原則有很多種,可以視情況選擇。不過和橫向分割資料庫一樣,縱向分割資料庫也是有代價的,最基本的就是我們在進行如COUNT, SUM等匯總操作的時候會麻煩很多。綜上所述,資料庫伺服器的解決方案一般視情況往往是一個混合的方案,以其發揮各種方案的優勢,有時候還需要藉助memcached之類的第三方軟體,以便適應更大訪問量的要求。
如果有專門的應用伺服器來跑PHP腳本是最合適不過的了,那樣我們的頁面伺服器只保存靜態頁面就可以了,可以給應用伺服器設置一些諸如app.domain之類的域名來和頁面伺服器加以區別。對於應用伺服器,我還是更傾向於使用prefork模式的apache,配上必要的xcache之類的PHP緩存軟體,載入模塊要越少越好,除了mod_rewrite等必要的模塊,不必要的東西統統舍棄,盡量減少httpd進程的內存消耗,而那些圖片伺服器,頁面伺服器等靜態內容就可以使用lighttpd或者tux來搞,充分發揮各種伺服器的特點。
如果條件允許,獨立的日誌伺服器也是必要的,一般小網站的做法都是把頁面伺服器和日誌伺服器合二為一了,在凌晨訪問量不大的時候cron運行前一天的日誌計算,不過如果你使用awstats之類的日誌分析軟體,對於百萬級訪問量而言,即使按天歸檔,也會消耗很多時間和伺服器資源去計算,所以分離單獨的日誌伺服器還是有好處的,這樣不會影響正式伺服器的工作狀態。
軟架構
框架的選擇
PHP框架有很多選擇,比如:CakePHP,Symfony,Zend Framework等等,至於應該使用哪一個並沒有唯一的答案,要根據Team里團隊成員對各個框架的了解程度而定。很多時候,即使沒有使用框架,一樣能 寫出好的程序來,比如Flickr據說就是用Pear+Smarty這樣的類庫寫出來的,所以,是否用框架,用什麼框架,一般不是最重要的,重要的是我們 的編程思想里要有框架的意識。
邏輯的分層

閱讀全文

與什麼叫把數據集橫向劃分相關的資料

熱點內容
3LTE基站的配置文件叫 瀏覽:185
申請回中國需遞交哪些文件 瀏覽:56
建商業型網站要花多少錢 瀏覽:434
備案網站怎麼上 瀏覽:280
網路電話卡怎麼用 瀏覽:644
打開加密的壓縮文件 瀏覽:665
計算機信息網路國際聯網單位備案表怎麼填 瀏覽:863
在linux下編譯c文件 瀏覽:337
qq怎麼給好友發文件 瀏覽:259
日語記單詞軟體安卓 瀏覽:513
hdtune如何檢測工具 瀏覽:659
軟體編程都需要什麼東西 瀏覽:686
labview程序讀取excel文件 瀏覽:613
哪個app法律英語翻譯好 瀏覽:199
文件名怎麼書寫 瀏覽:402
win10系統備份鏡像文件在哪刪除 瀏覽:712
cf網路老掉線 瀏覽:506
java寫文件相對路徑 瀏覽:94
java枚舉數據類型 瀏覽:248
ps指定配置文件的步驟 瀏覽:724

友情鏈接