SAP HANA 行儲存和列儲存表
SAP HANA 模型檢視只能在基於列的表之上建立。將資料儲存在列表中並不是什麼新鮮事。以前人們認為,將資料儲存在基於列的結構中會佔用更多記憶體,並且效能未經最佳化。
隨著 SAP HANA 的發展,HANA 在資訊檢視中使用了基於列的資料儲存,並展示了列表相對於基於行的表的真正優勢。
列儲存
在列儲存表中,資料垂直儲存。因此,類似的資料型別會像上面示例中所示那樣組合在一起。它藉助記憶體計算引擎提供更快的記憶體讀寫操作。
在傳統的資料庫中,資料以基於行的結構(即水平方式)儲存。SAP HANA 以基於行和基於列的結構儲存資料。這在 HANA 資料庫中提供了效能最佳化、靈活性和資料壓縮。
在基於列的表中儲存資料具有以下優點:
- 資料壓縮
- 與傳統的基於行的儲存相比,對錶的讀寫訪問速度更快
- 靈活性和並行處理
- 以更高的速度執行聚合和計算
功能差異 - 行儲存與列儲存
如果 SQL 語句必須執行聚合函式和計算,則始終建議使用基於列的儲存。在執行 Sum、Count、Max、Min 等聚合函式時,基於列的表始終表現更好。
如果輸出必須返回完整的行,則首選基於行的儲存。以下示例可以更容易地理解這一點。
在使用 Where 子句對 sales 列執行聚合函式 (Sum) 時,它只使用 Date 和 Sales 列執行 SQL 查詢,因此,如果它是基於列的儲存表,則由於只需要來自兩列的資料,所以它將是效能最佳化的,速度更快。
在執行簡單的 Select 查詢時,必須在輸出中列印完整的行,因此在這種情況下,建議將表儲存為基於行的表。
廣告