首页
/
每日頭條
/
圖文
/
列存儲與行存儲區别
列存儲與行存儲區别
更新时间:2026-09-12 01:14:36

目前大數據存儲有兩種方案可供選擇:行存儲(Row-Based)和列存儲(Column-Based)。

列存儲與行存儲區别(了解一下列存儲及其特點)1

什麼是列存儲

列式存儲(column-based)是相對于傳統關系型數據庫的行式存儲(Row-basedstorage)來說的。簡單的來說就是數據的存儲方式是按照列方向來存儲的。

列存儲與行存儲區别(了解一下列存儲及其特點)2

簡單來說兩者的區别就是如何從上圖可以看出行存儲數據條都是在一起的,列存儲中數據是分開存放的。

行存儲 VS 列存儲
  1. 按數據讀取方式

1)數據讀取時,行存儲通常将一行數據完全讀出,如果隻需要其中幾列數據的情況,就會存在冗餘列,出于縮短處理時間的考量,消除冗餘列的過程通常是在内存中進行的。

2)列存儲每次讀取的數據是集合的一段或者全部,不存在冗餘性問題。

3) 兩種存儲的數據分布。由于列存儲的每一列數據類型是同質的,不存在二義性問題。比如說某列數據類型為整型(int),那麼它的數據集合一定是整型數據。這種情況使數據解析變得十分容易。相比之下,行存儲則要複雜得多,因為在一行記錄中保存了多種類型的數據,數據解析需要在多種數據類型之間頻繁轉換,這個操作很消耗CPU,增加了解析的時間。所以,列存儲的解析過程更有利于分析大數據。

4)從數據的壓縮以及更性能的讀取來對比

列存儲與行存儲區别(了解一下列存儲及其特點)3

列存儲與行存儲區别(了解一下列存儲及其特點)4

  1. 按數據寫入方式

1)行存儲的寫入是一次完成。如果這種寫入建立在操作系統的文件系統上,可以保證寫入過程的成功或者失敗,數據的完整性因此可以确定。

2)列存儲由于需要把一行記錄拆分成單列保存,寫入次數明顯比行存儲多(意味着磁頭調度次數多,而磁頭調度是需要時間的,一般在1ms~10ms) ,再加上磁頭需要在盤片上移動和定位花費的時間,實際時間消耗會更大。所以,行存儲在寫入上占有很大的優勢。

3)還有數據修改,這實際也是一次寫入過程。不同的是,數據修改是對磁盤上的記錄做删除标記。行存儲是在指定位置寫入一次,列存儲是将磁盤定位到多個列上分别寫入,這個過程仍是行存儲的列數倍。所以,數據修改也是以行存儲占優。

列存儲使用場景

1)一般來說,一個OLAP類型的查詢可能需要訪問幾百萬甚至幾十億個數據行,且該查詢往往隻關心少數幾個數據列。例如,查詢今年銷量最高的前20個商品,這個查詢隻關心三個數據列:時間(date)、商品(item)以及銷售量(sales amount)。商品的其他數據列,例如商品URL、商品描述、商品所屬店鋪,等等,對這個查詢都是沒有意義的。

而列式數據庫隻需要讀取存儲着“時間、商品、銷量”的數據列,而行式數據庫需要讀取所有的數據列。因此,列式數據庫大大地提高了OLAP大數據量查詢的效率

OLTP OnLine TransactionProcessor 在線聯機事務處理系統(比如Mysql,Oracle等産品)

OLAP OnLine AnalaysierProcessor 在線聯機分析處理系統(比如Hive Hbase等)

2)很多列式數據庫還支持列族(column group,Bigtable系統中稱為locality group),即将多個經常一起訪問的數據列的各個值存放在一起。如果讀取的數據列屬于相同的列族,列式數據庫可以從相同的地方一次性讀取多個數據列的值,避免了多個數據列的合并。列族是一種行列混合存儲模式,這種模式能夠同時滿足OLTP和OLAP的查詢需求。

3)此外,由于同一個數據列的數據重複度很高,因此,列式數據庫壓縮時有很大的優勢。

總結

行式數據庫的特征如下:

①數據是按行存儲的。

②沒有索引的查詢使用大量I/O。比如一般的數據庫表都會建立索引,通過索引加快查詢效率。

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

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

列式數據庫的特性如下:

①數據按列存儲,即每一列單獨存放。

②數據即索引。

③隻訪問查詢涉及的列,可以大量降低系統I/O。

④每一列由一個線程來處理,即查詢的并發處理性能高。

⑤數據類型一緻,數據特征相似,可以高效壓縮。比如有增量壓縮、前綴壓縮算法都是基于列存儲的類型定制的,所以可以大幅度提高壓縮比,有利于存儲和網絡輸出數據帶寬的消耗。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
融化在每一次的擁抱(臣服在每一瞬間)
融化在每一次的擁抱(臣服在每一瞬間)
  臣服這不是讓大家被動,而是投入在每一個瞬間,同時站在這個甯靜看這個瞬間。   這麼做,痛苦、窩囊和不舒服自然會消失。   臣服和容納一切,并不是什麼都不做,而是一個最自由的選擇。   面對當下所帶來的一切不去抵抗,不光是因為抵抗沒有用,甚至還會造出更多煩惱和不順。   活在當下的動,反而可以完成一般人認為不可思議的事。   一般人做事,很少是從内心的甯靜...
2026-09-12
擦洗油垢最好清潔劑(日本百年油污清潔劑)
擦洗油垢最好清潔劑(日本百年油污清潔劑)
     掐指一算,年底了,又到了一年一度大掃除的時候。      如果要問什麼地方是打掃難點? 那就非廚房莫屬。   竈台上燒焦幹涸的污漬,鍋底下厚重發黴的油漬,以及水槽裡長滿毛毛的水垢......每次清潔起來都讓人抓狂。      買了一大堆清潔劑,瓶瓶罐罐占地方不說,清潔效果還不盡如人意。      直到小編發現了它-CLEALION重油清潔劑。   ...
2026-09-12
奔跑吧第一季陣容官宣(奔跑吧全新陣容合體亮相春推會)
奔跑吧第一季陣容官宣(奔跑吧全新陣容合體亮相春推會)
  3月28日,全新一季《奔跑吧》家族的七位成員李晨、Angelababy、鄭恺、朱亞文、王彥霖、黃旭熙、宋雨琦合體亮相浙江衛視春推會,兄弟團相聚一堂,其樂融融、笑聲不停。現場還有《王牌對王牌》家族沈騰、賈玲、華晨宇、關曉彤歡樂集結,更有《中國好聲音》全新導師王力宏驚喜出席,浙江衛視新年的亮相可謂是全員出動大陣仗了。      超長花絮引爆全場,李晨撕名牌以...
2026-09-12
金龜子講的睡前小故事(金龜子講睡前故事)
金龜子講的睡前小故事(金龜子講睡前故事)
        呼噜豬,真好笑,每天早上都要睡懶覺。   叮鈴鈴,鬧鐘響,呼噜豬翻了個身又睡過去了。媽媽一遍一遍地喊,爸爸一次一次地叫,呼噜豬蒙上被子都沒有聽到。   當鬧鈴又響了一次時,呼噜豬突然從床上起來,糟糕糟糕,今天可千萬别遲到啊。   呼噜豬沒洗臉,沒刷牙,左腳的鞋子還穿在了右腳上,慌慌張張地收拾書包,呼噜豬都快要急死了。   豬爸爸看着呼噜豬匆忙...
2026-09-12
六級寫作高級替換詞彙(四六級寫作必背)
六級寫作高級替換詞彙(四六級寫作必背)
  各位備考四六級的童鞋們,2016年6月的四六級考試馬上就要到來了,你們的寫作都準備得如何呢?是否還是在練習寫作和翻譯時,一想寫“喜歡”就用“like”? 一想到“重要”就要寫“important”呢?快來看看小編為大家準備的以下寫作常用詞語高級替換吧!建議大家做好筆記,反複不斷地背誦,才能在考試中用起來哦!      重要的   (important) ...
2026-09-12
Copyright 2023-2026 - www.tftnews.com All Rights Reserved