行列存储方式比较
原文鏈接:https://blog.csdn.net/vagabond6/article/details/79555282
寫入:
行存儲的寫入是一次完成,數據的完整性因此可以確定。
列存儲需要把一行記錄拆分成單列保存,寫入次數明顯比行存儲多。
行存儲在寫入上占有很大的優勢
數據修改:
行存儲是在指定位置寫入一次,列存儲是將磁盤定位到多個列上分別寫入。
行存儲在數據修改也是占優的
數據讀取:
行存儲通常將一行數據完全讀出,如果只需要其中幾列數據,就會存在冗余列
列存儲每次讀取的數據是集合中的一段或者全部。
由于列儲存的數據是同質的,這種情況使數據解析變得容易。行存儲則復雜的多,因為在一行記錄中保存了多種類型的數據,數據解析需要在多種數據類型之間頻繁轉換,這個操作很消耗cpu
所以列存儲的解析過程中更有利于分析大數據
顯而易見,兩種存儲格式都有各自的優缺點:行存儲的寫入是一次性完成,消耗的時間比列存儲少,并且能夠保證數據的完整性,缺點是數據讀取過程中會產生冗余數據,如果只有少量數據,此影響可以忽略;數量大可能會影響到數據的處理效率。列存儲在寫入效率、保證數據完整性上都不如行存儲,它的優勢是在讀取過程,不會產生冗余數據,這對數據完整性要求不高的大數據處理領域,比如互聯網,猶為重要。
什么時候應該使用行式存儲?什么時候應該使用列式存儲呢?
如果你大部分時間都是關注整張表的內容,而不是單獨某幾列,并且所關注的內容是不需要通過任何聚集運算的,那么推薦使用行式存儲。原因是重構每一行數據(即解壓縮過程)對于HANA來說,是一個不小的負擔。
列式存儲的話,比如你比較關注的都是某幾列的內容,或者有頻繁聚集需要的,通過聚集之后進行數據分析的表。
?
總結
- 上一篇: 【解决方案】GB28181/RTSP/O
- 下一篇: Java宠物管理系统(运用接口简易版)