Row-Oriented and Columnar Database 的差異與該如何選擇

更新 發佈閱讀 3 分鐘
vocus|新世代的創作平台
在網頁服務中資料庫擔任了很重要的任務,用來保存客戶的資料與提供分析的數據來源,而針對不同的需求會有各類型適合資料庫來負責。

這篇文章中會針對 Row-Oriented (以列為儲存主體) 和 Columnar (以行為儲存主體) 的兩種資料庫來分析任務與資料庫間的合適搭配。

Row-Oriented 的意思

vocus|新世代的創作平台

Row-Oriented 的資料庫在儲存上會將圖上 同一 Row 的資料存為一組,因此只要知道 Id 就能快速的撈出他所在那 Row 的資料。

如圖所示,我可以透過 VendorId 找到商品的 Price 與 Cost。

而這樣的設計在統計分析上就會有一定程度的效能損耗,原因在於說我如果是想要統計所有的 Price 的加總,我雖然只需要每一個 Row 的 Price,但還是會讀取到其他的資料,導致存取上的浪費。

Columnar 的意思

vocus|新世代的創作平台

Columnar 的資料庫在儲存上會將圖上同一 Column 的資料存為一組,因此可以簡單的針對某一欄位做運算。

如圖所示,我可以直接將 Price 做加總而不需要涉及到其他欄位的資料。

而這樣的設計在一般用途上就會很不方便,當我想要透過 VendorId 找到商品的 Price 與 Cost 時,我需要將 VendorId、Price、Cost 的欄位全部撈出來,並且找到相對位置的資料,在查找上非常沒有效率。

Row-Oriented 與 Columnar 的差異

現在我們知道 Row-Oriented 與 Columnar 主要是儲存資料時的結構差異。

Row-Oriented 代表的資料庫有 MySQLPostgreSQLMSSQL
適用於以 Id 來找關聯資料的系統如: 電商、會員管理、庫存管理的系統

Columnar 代表的資料庫有 Google Cloud BigQuery、Snowflake
適合用於統計分析的場景,如報表系統

如何選擇

以上可以看出 Row-Oriented 與 Columnar 沒有絕對優勢,而且通常在一套系統存在大量存取時會同時使用兩種資料庫,比如電商系統在交易時採用 Row-Oriented,而在分析時將資料從 Row-Oriented 轉移到 Columnar 來做複雜的報表分析,以提升整套系統的乘載量與穩定性。

參考

Snowflake

Google Cloud BigQuery

PostgreSQL

MySQL

MSSQL

留言
avatar-img
Sponge | 一塊海綿的沙龍
6會員
10內容數
分享網站開發的前端、後端、資料庫與部屬維運技術,並記錄在工作上的心得
2023/02/20
Hhost 是一個基於 Hasura 並且整合了 Serverless、PostgreSQL、Auth、Storage 的一體化 BaaS 服務,主要的假想敵為 Firebase 而目標是將網站系統開發盡可能的精簡與可拓展化。
Thumbnail
2023/02/20
Hhost 是一個基於 Hasura 並且整合了 Serverless、PostgreSQL、Auth、Storage 的一體化 BaaS 服務,主要的假想敵為 Firebase 而目標是將網站系統開發盡可能的精簡與可拓展化。
Thumbnail
2023/02/19
PaaS 是指平台即服務(platform as a service),意思是可以透過管理介面執行設定與部署而不需要處理底層的伺服器運作與維護。
Thumbnail
2023/02/19
PaaS 是指平台即服務(platform as a service),意思是可以透過管理介面執行設定與部署而不需要處理底層的伺服器運作與維護。
Thumbnail
2023/02/17
Hasura 是一個開源、高性能、多資料來源與嚴謹權限控管的 GraphQL Engine Service。
Thumbnail
2023/02/17
Hasura 是一個開源、高性能、多資料來源與嚴謹權限控管的 GraphQL Engine Service。
Thumbnail
看更多
你可能也想看
Thumbnail
在網頁服務中資料庫擔任了很重要的任務,用來保存客戶的資料與提供分析的數據來源,而針對不同的需求會有各類型適合資料庫來負責。 這篇文章中會針對 Row-Oriented (以列為儲存主體) 和 Columnar (以行為儲存主體) 的兩種資料庫來分析任務與資料庫間的合適搭配。
Thumbnail
在網頁服務中資料庫擔任了很重要的任務,用來保存客戶的資料與提供分析的數據來源,而針對不同的需求會有各類型適合資料庫來負責。 這篇文章中會針對 Row-Oriented (以列為儲存主體) 和 Columnar (以行為儲存主體) 的兩種資料庫來分析任務與資料庫間的合適搭配。
Thumbnail
聚合函數 可以對資料的筆數、平均、最大、最小和加總的運算,提供查詢結果:如下表示: COUNT(Column):計算筆數,「*」是統計紀錄數。 AVG(Column):計算欄位平均值。 MAX(Column):計算欄位最大值。 MIN(Column):計算欄位最小值。 SUM(Colum
Thumbnail
聚合函數 可以對資料的筆數、平均、最大、最小和加總的運算,提供查詢結果:如下表示: COUNT(Column):計算筆數,「*」是統計紀錄數。 AVG(Column):計算欄位平均值。 MAX(Column):計算欄位最大值。 MIN(Column):計算欄位最小值。 SUM(Colum
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
※ 關聯式資料庫(RDBMS)是什麼? 關聯式資料庫(RDBMS)是一種傳統的資料庫系統,以結構化查詢語言(SQL)為基礎,將資料儲存於預定義的表格中。這些表格包括行和列,彼此之間存在明確的關聯性。 ※ 關聯式資料庫(RDBMS)有兩個重要元素: 關聯(Relational): 關聯式資料庫
Thumbnail
※ 關聯式資料庫(RDBMS)是什麼? 關聯式資料庫(RDBMS)是一種傳統的資料庫系統,以結構化查詢語言(SQL)為基礎,將資料儲存於預定義的表格中。這些表格包括行和列,彼此之間存在明確的關聯性。 ※ 關聯式資料庫(RDBMS)有兩個重要元素: 關聯(Relational): 關聯式資料庫
Thumbnail
在準備轉職期間,為了能更接近數據分析的領域,首先決定要進修的領域是程式語言,首先從門檻相對不高的SQL(Structured Query Language,結構化查詢語言)開始。在此分享目前為止學到的一些小小心得。
Thumbnail
在準備轉職期間,為了能更接近數據分析的領域,首先決定要進修的領域是程式語言,首先從門檻相對不高的SQL(Structured Query Language,結構化查詢語言)開始。在此分享目前為止學到的一些小小心得。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
查詢範圍 指定欄位 SELECT column1, column2, column3,... FROM your_table_name 不重複欄位 SELECT DISTINCT column1 FROM your_table_name 欄位別名 SELECT column1 A
Thumbnail
查詢範圍 指定欄位 SELECT column1, column2, column3,... FROM your_table_name 不重複欄位 SELECT DISTINCT column1 FROM your_table_name 欄位別名 SELECT column1 A
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
多條件查詢 AND運算子 SELECT *​ FROM your_table_name WHERE column1 LIKE '_value1%' AND column2 = number​2 OR運算子 SELECT *​ FROM your_table_name WHERE colu
Thumbnail
多條件查詢 AND運算子 SELECT *​ FROM your_table_name WHERE column1 LIKE '_value1%' AND column2 = number​2 OR運算子 SELECT *​ FROM your_table_name WHERE colu
Thumbnail
在資料庫管理中,SQL(Structured Query Language)是一種強大的工具,用於處理資料庫中的資料。本篇教學將介紹 SQL 中的基本操作,包括 SELECT、UPDATE、INSERT 和 DELETE,讓您能夠有效地查詢、更新、插入和刪除資料。
Thumbnail
在資料庫管理中,SQL(Structured Query Language)是一種強大的工具,用於處理資料庫中的資料。本篇教學將介紹 SQL 中的基本操作,包括 SELECT、UPDATE、INSERT 和 DELETE,讓您能夠有效地查詢、更新、插入和刪除資料。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News