傳統的關係型資料庫是行式資料庫,因為關聯式資料庫是按照行來儲存資料的,而列式資料庫就是按照列來儲存資料的資料庫。
行式資料庫的主要優勢有以下兩點。第一點是業務同時讀取多列的時候,效率比較高,因為這些列都是按行儲存在一起的,一次磁碟操作就能夠把一行資料中的列都讀到記憶體中,第二點,是能夠一次性完成對一行中多個列的寫操作,保證了針對行資料寫操作的原子性和一致性。
但是在海量資料統計分析的場景下,行式資料庫就會顯示出劣勢。例如統計計算某個城市體重超重的人員資料。實際上只需要讀取每個人的體重這一列進行統計分析即可。但是行式儲存的情況下,即使只使用一列也會將所有行的資料都讀取出來。在這種情況下,列式儲存的優勢就會體現出來。
列式儲存除了節省io以外,還具備更高的儲存壓縮比,能夠更節省儲存空間。普通的行式資料庫的壓縮率一般在3:1到5:1左右,而列式資料庫的壓縮率一般在8:1到30:1左右。這是因為單個列的資料相似性更高,所以能夠達到更高的壓縮率。
基於以上的分析,一般將列式儲存應用在離線的大資料分析和統計場景中,因為這種場景主要是針對部分列進行操作,並且資料寫入後無需再更新和刪除。
你真的了解Java嗎?
三目運算子規則 如果第二個和第三個運算元具有相同的型別,那麼它就是條件表示式的類 型。換句話說,你可以通過繞過混合型別的計算來避免 煩。如果乙個運算元的型別是 t,t 表示 byte short 或 char,而另乙個運算元是乙個 int 型別的常量表示式,它的值是可以用型別 t 表示的,那麼條件表...
你真的了解restful api嗎?
在以前,乙個 的完成總是 all in one 頁面,資料,渲染全部在服務端完成,這樣做的最大的弊端是後期維護,擴充套件極其痛苦,開發人員必須同時具備前後端知識。於是慢慢的後來興起了前後端分離的思想 後端負責資料編造,而前端則負責資料渲染,前端靜態頁面呼叫指定api獲取到有固定格式的資料,再將資料展...
你真的了解git嗎?
看了幾遍廖雪峰的git教程和阮一峰的git教程之後,覺得自己使用git已經是得心應手了,腦中也構建出了一副關於git操作的影象。學習乙個新東西的時候我總是喜歡把知識形象化出乙個圖譜在腦中,這樣記憶的更加深刻。但是隨著使用的深入,我發現我腦中的影象與git的實際行為存在出入。稍微進入一下正題。假如你的...