你真的瞭解列式數據庫嗎

傳統的關係型數據庫是行式數據庫,因爲關係數據庫是按照行來存儲數據的,而列式數據庫就是按照列來存儲數據的數據庫。

行式數據庫的主要優勢有以下兩點。第一點是業務同時讀取多列的時候,效率比較高,因爲這些列都是按行存儲在一起的,一次磁盤操作就能夠把一行數據中的列都讀到內存中,第二點,是能夠一次性完成對一行中多個列的寫操作,保證了針對行數據寫操作的原子性和一致性。

但是在海量數據統計分析的場景下,行式數據庫就會顯示出劣勢。例如統計計算某個城市體重超重的人員數據。實際上只需要讀取每個人的體重這一列進行統計分析即可。但是行式存儲的情況下,即使只使用一列也會將所有行的數據都讀取出來。在這種情況下,列式存儲的優勢就會體現出來。

列式存儲除了節省io以外,還具備更高的存儲壓縮比,能夠更節省存儲空間。普通的行式數據庫的壓縮率一般在3:1到5:1左右,而列式數據庫的壓縮率一般在8:1到30:1左右。這是因爲單個列的數據相似性更高,所以能夠達到更高的壓縮率。

基於以上的分析,一般將列式存儲應用在離線的大數據分析和統計場景中,因爲這種場景主要是針對部分列進行操作,並且數據寫入後無需再更新和刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章