1. 程式人生 > >OLTP與OLAP的區別

OLTP與OLAP的區別

容量 服務 並行 並不是 命中率 相對 客戶端 離散 網卡

1、典型OLTP應用系統

對於各種數據庫系統環境中大家最常見的OLTP系統,其特點是並發量大,整體數據量比較多,但每次訪問的數據比較少,且訪問的數據比較離散,活躍數據占總體數據的比例不是太大。對於這類系統的數據庫實際上是最難維護,最難以優化的,對主機整體性能要求也是最高的。因為不僅訪問量很高,數據量也不小。

針對上面的這些特點和分析,我們可以對OLTP的得出一個大致的方向。

雖然系統總體數據量較大,但是系統活躍數據在數據總量中所占的比例不大,那麽我們可以通過擴大內存容量來盡可能多的將活躍數據cache到內存中;

雖然IO訪問非常頻繁,但是每次訪問的數據量較少且很離散,那麽我們對磁盤存儲的要求是IOPS表現要很好,吞吐量是次要因素;

並發量很高,CPU每秒所要處理的請求自然也就很多,所以CPU處理能力需要比較強勁;

雖然與客戶端的每次交互的數據量並不是特別大,但是網絡交互非常頻繁,所以主機與客戶端交互的網絡設備對流量能力也要求不能太弱。

2、典型OLAP應用系統

用於數據分析的OLAP系統的主要特點就是數據量非常大,並發訪問不多,但每次訪問所需要檢索的數據量都比較多,而且數據訪問相對較為集中,沒有太明顯的活躍數據概念。

基於OLAP系統的各種特點和相應的分析,針對OLAP系統硬件優化的大致策略如下:

數據量非常大,所以磁盤存儲系統的單位容量需要盡量大一些;

單次訪問數據量較大,而且訪問數據比較集中,那麽對IO系統的性能要求是需要有盡可能大的每秒IO吞吐量,所以應該選用每秒吞吐量盡可能大的磁盤;

雖然IO性能要求也比較高,但是並發請求較少,所以CPU處理能力較難成為性能瓶頸,所以CPU處理能力沒有太苛刻的要求;

雖然每次請求的訪問量很大,但是執行過程中的數據大都不會返回給客戶端,最終返回給客戶端的數據量都較小,所以和客戶端交互的網絡設備要求並不是太高;

此外,由於OLAP系統由於其每次運算過程較長,可以很好的並行化,所以一般的OLAP系統都是由多臺主機構成的一個集群,而集群中主機與主機之間的數據交互量一般來說都是非常大的,所以在集群中主機之間的網絡設備要求很高。

3、除了以上兩個典型應用之外,還有一類比較特殊的應用系統,他們的數據量不是特別大,但是訪問請求及其頻繁,而且大部分是讀請求。可能每秒需要提供上萬甚至幾萬次請求,每次請求都非常簡單,可能大部分都只有一條或者幾條比較小的記錄返回,就比如基於數據庫的DNS服務就是這樣類型的服務。

雖然數據量小,但是訪問極其頻繁,所以可以通過較大的內存來cache住大部分的數據,這能夠保證非常高的命中率,磁盤IO量比較小,所以磁盤也不需要特別高性能的;

並發請求非常頻繁,比需要較強的CPU處理能力才能處理;

雖然應用與數據庫交互量非常大,但是每次交互數據較少,總體流量雖然也會較大,但是一般來說普通的千兆網卡已經足夠了。

OLTP與OLAP的區別