導語:隨著大數據的發展,現在出現的列式存儲和列式數據庫,如Hbase。它與傳統的行式數據庫有很大區別的。
定義
行式數據庫是按照行存儲的,行式數據庫擅長隨機讀操作不適合用于大數據。像SQL server,Oracle,mysql等傳統的是屬于行式數據庫范疇。
列式數據庫從一開始就是面向大數據環境下數據倉庫的數據分析而產生。
一圖理解行式數據庫和列式數據庫的區別
二者區別
- 行式數據庫把一行中的數據值串在一起存儲起來,然后再存儲下一行的數據,以此類推。
- 列式數據庫把一列中的數據值串在一起存儲起來,然后再存儲下一列的數據,以此類推。
二者區別.png
列式數據庫的優缺點:
優點:
極高的裝載速度 (最高可以等于所有硬盤IO 的總和,基本是極限了)
適合大量的數據而不是小數據
實時加載數據僅限于增加(刪除和更新需要解壓縮Block 然后計算然后重新壓縮儲存)
高效的壓縮率,不僅節省儲存空間也節省計算內存和CPU。
非常適合做聚合操作。
缺點:
不適合掃描小量數據
不適合隨機的更新
批量更新情況各異,有的優化的比較好的列式數據庫(比如Vertica)表現比較好,有些沒有針對更新的數據庫表現比較差。
不適合做含有刪除和更新的實時操作
參考文檔