列式儲存和行式儲存

2021-10-10 01:56:39 字數 1517 閱讀 8847

行式儲存資料庫和列式儲存資料庫,隨著業務深入,技能增長,經常會碰到,今天來理解一下。

列式儲存(clolumn-based)和行式儲存(row-based)都是相對於對方的,他們的區別是在磁碟的儲存方式不同,所以在讀寫資料時,方式不同,以至於他們的適用場景也都不同。

列式儲存資料庫主要包括:hbase,clickhouse,druid,hp vertica(也支援行式儲存)

行式儲存資料庫主要包括傳統關係型資料庫:mysql,oracle,db2,sqlserver,postgresql

序號位址

腰圍長相姓名1

陽谷縣30

6潘金蓮

2鄆城縣406

閻惜嬌3

薊州50

6潘巧雲4京城

308李師師西門大官人沒有excel,只有紙和筆記錄,所以他先寫成如下這種行式儲存的方式。在什麼地方找誰,找什麼樣的,奶茶喝膩了,換換口味,一目了然。

這樣,現在要找薊州的紅顏,就把所有的掃瞄檢視一遍,找到薊州的紅顏。想找6分的紅顏,就再掃瞄一遍,想找什麼就掃瞄一遍。

這就是乙個標準的行式儲存,資料按照一行一行的儲存,有什麼特點呢:

資料按行儲存,直觀檢視一條資料的全部資訊,修改方便(oltp)

查詢需要一條一條的檢視(全表掃瞄),費事,費時

建立索引、物化檢視消耗時間,資源。

後來,大官人要記錄管理的物件越來越多是,這個又不能交給別人去記錄,只能親力親為,問題出現了,大官人的資料已經記錄成一本書了,每次癮發作了,先看一本書,檢視位址,是不是體驗特別不好?這沒有難道他,他又想到了一種記錄方式

將序號和行號寫到特定的幾張紙上,將位址和行號寫在特定的幾張紙上,將腰圍和行號寫在特定的幾張紙上,將姓名和行號寫在指定的幾張紙上。

這樣,想查詢腰圍30的,只需要查詢腰圍的那幾張紙,找到行號,再查詢記錄位址的幾張紙,檢視位址就可以去哈皮了。體驗似乎好起來了。

這樣儲存有什麼特點呢:

列式儲存。

只查詢需要的字段,快速。(olap)

3,查詢某一條資料的全部資訊要查詢所有的紙再拼接起來,不方便,修改一條資料,要修改多張紙,不方便。

資料是按行儲存的

沒有索引時,查詢使用大量i/o,大資料量是表現不佳。

建立索引和物化檢視可以優化,但是需要花費大量時間和資源。

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

資料按列儲存–每一列單獨存放 。

資料即是索引。

只訪問查詢涉及的列–大量降低系統io 。

每一列由乙個線索來處理–查詢的併發處理。

資料型別一致,資料特徵相似–高效壓縮。

行式儲存適用於oltp,而列式儲存適用於大資料場景下的olap。實際生產活動中,按照使用場景,進選擇合適的儲存引擎,發揮元件的最大優勢。

(完)(^_^)

行式儲存與列式儲存

行式儲存與列式儲存 行式儲存 資料儲存以行為單位,儲存完一行就會跳到第二行 row based store。維護大量的索引,儲存成本比較高,不能做到線性擴充套件,對於隨機讀的效率高。最大的特點就是對事務的處理能力支援的非常好。行式儲存最大的優點是關係之間的解決方案,行式儲存實現了關係型資料庫,如果表...

列式儲存和行式儲存的區別

列式儲存 columnar or column based 是相對於傳統關係型資料庫的行式儲存 row basedstorage 來說的。簡單來說兩者的區別就是如何組織表 翻譯不好,直接抄原文了 row based storage stores atable in a sequence of row...

列式儲存和行式儲存的理解詳解

叮嘟!這裡是小啊嗚的學習課程資料整理。好記性不如爛筆頭,今天也是努力進步的一天。一起加油高階吧!列式儲存是指一列中的資料在儲存介質中是連續儲存的 行式儲存是指一行中的資料在儲存介質中是連續儲存的。簡單的說,你可以把列式資料庫認為是每一列都是乙個表,這個表只有一列,如果只在該列進行條件查詢,速度就很快...