公眾號:
matinal
本文作者:
matinal
前言部分
大家可以關注我的公眾號,公眾號里的排版更好,閱讀更舒適。
正文部分
SAP HANA處理大量數據速度快的機制理解
1:HANA使用列存儲的數據管理優化數據存取
從列去讀取數據庫表,其他忽略
2:對於內存和CPU之間的訪問速度差異,增加內核,壓縮數據
3:使用列存儲技術高效利用CPU的緩存。
行存儲數據的讀取方式容易造成內存的數據讀取及高速緩存的丟失
4:利用新型CPU預讀取的技術夾克數據的讀取
就是讀取一個緩存數據的同時,預讀另一個緩存數據。
HANA采用了行列混合的存儲模式
即在單一數據庫系統中,能支持兩種不同的數據存儲模式。
傳統意義上數據庫表是一個二維表,由行和列組成。
行存儲方式包含一條記錄中所有的數據
而列存儲方式則包含這一列中所有數據。
如下圖演示:
這樣一個數據庫表的話,
行存儲如下:
列存儲如下:
一般認為,列存儲對數據的讀取優於行存儲
行存儲對數據的更新更加好。
所以,列存儲適用於以下情況:
1:大量數據的統計計算和訪問只會在需要訪問的某幾個單列中進行
2:對於需要經常對表結構進行改動的或者擴展的情況
3:對很多行記錄和列字段進行頻繁操作
4:當最主要的列中有很多重復數據的情況,可以對其進行數據壓縮
行存儲使用於以下情況:
1:在某個時間點只處理單行的記錄。
2:需要訪問這一記錄的所有列信息,避免跳躍式訪問讀取。
3:列中包含最主要的不重復數據。
4:沒有快速聚合或進行快速查詢的需要。
5:數據庫表中的記錄不太多的情況。
更多內容,關注我的公眾號吧。