行儲存和列儲存的區別

2021-10-25 14:39:14 字數 1183 閱讀 1403

行儲存和列儲存的區別

a.行儲存的寫入是一次完成,資料的完整性因此可以確定。

列儲存需要把一行記錄拆分成單列儲存,寫入次數明顯比行儲存多。

行儲存在寫入上占有很大的優勢

b.行儲存是在指定位置寫入一次,列儲存是將磁碟定位到多個列上分別寫入

行儲存在資料修改也是佔優的

c.行儲存通常將一行資料完全讀出,如果只需要其中幾列資料,就會存在冗餘列

列儲存每次讀取的資料是集合中的一段或者全部。

由於列儲存的資料是同質的,這種情況使資料解析變得容易。行儲存則複雜的多,因為在一行記錄中儲存了多種型別的資料,資料解析需要在多種資料型別之間頻繁轉換,這個操作很消耗cpu

所以列儲存的解析過程中更有利於分析大資料

d.如果你大部分時間都是關注整張表的內容,而不是單獨某幾列,並且所關注的內容是不需要通過任何聚集運算的,那麼推薦使用行式儲存。

原因是重構每一行資料(即解壓縮過程)對於hana(高效能分析裝置)來說,是乙個不小的負擔。

列式儲存的話,比如你比較關注的都是某幾列的內容,或者有頻繁聚集需要的,通過聚集之後進行資料分析的表。

行儲存的寫入是一次性完成,消耗的時間比列儲存少,並且能夠保證資料的完整性,缺點是資料讀取過程中會產生冗餘資料,如果只有少量資料,此影響可以忽略;數量大可能會影響到資料的處理效率。

列儲存在寫入效率、保證資料完整性上都不如行儲存,它的優勢是在讀取過程,不會產生冗餘資料,這對資料完整性要求不高的大資料處理領域,比如網際網路,猶為重要。

傳統行式資料庫的特性如下:

①資料是按行儲存的。

②沒有索引的查詢使用大量i/o。比如一般的資料庫表都會建立索引,通過索引加快查詢效率。

③建立索引和物化檢視需要花費大量的時間和資源。

④面對查詢需求,資料庫必須被大量膨脹才能滿足需求。

列式資料庫的特性如下:

①資料按列儲存,即每一列單獨存放。

②資料即索引。

③只訪問查詢涉及的列,可以大量降低系統i/o。

④每一列由乙個執行緒來處理,即查詢的併發處理效能高。

⑤資料型別一致,資料特徵相似,可以高效壓縮。比如有增量壓縮、字首壓縮演算法都是基於列儲存的型別定製的,所以可以大幅度提高壓縮比,有利於儲存和網路輸出資料頻寬的消耗。

行儲存和列儲存的區別

列儲存不同於傳統的關係型資料庫,其資料在表中是按行儲存的,列方式所帶來的重要好處之一就是,由於查詢中的選擇規則是通過列來定義的,因此整個資料庫是自動索引化的。按列儲存每個欄位的資料聚集儲存,在查詢只需要少數幾個欄位的時候,能大大減少讀取的資料量,乙個欄位的資料聚集儲存,那就更容易為這種聚集儲存設計更...

行儲存和列儲存的區別

一 對比行儲存和列儲存的區別前,我們先來聊下背景。假設我們用mysql做了乙個商品訂單庫order,如下 orderid name kind price kgtime1豬肉 肉類50 2.02020.01.012牛肉 肉類60 1.02020.01.013白菜 蔬菜61.02020.01.01 二 ...

行儲存和列儲存的區別

行儲存和列儲存的區別 列儲存不同於傳統的關係型資料庫,其資料在表中是按行儲存的,列方式所帶來的重要好處之一就是,由於查詢中的選擇規則是通過列來定義的。因此整個資料庫是自動索引化的。按列儲存每個欄位的資料聚集儲存,在查詢只需要少數幾個欄位的時候,能大大減少讀取的資料量,乙個欄位的資料聚集儲存,那就更容...