目錄
列式存儲
行式存儲
列式存儲的好處
以下表為例:
列式存儲
采用列式存儲時,資料在磁盤上的組織結構為:
可以看到每個字段的值都是按順序紮堆存儲在一起的,
好處:如果想查所有人的年齡隻需把年齡那一列拿出來就可以了,例如 select age from xxx
行式存儲
采用行式存儲時,資料在磁盤上的組織結構為:
好處:想查某個人所有的屬性時,可以通過一次磁盤查找加順序讀取就可以。但是當想查所有人的年齡時,需要不停的查找,或者全表掃描才行,周遊的很多資料都是不需要的。
列式存儲的好處
- 對于列的聚合,計數,求和等統計操作原因優于行式存儲。
- 由于某一列的資料類型都是相同的,針對于資料存儲更容易進行資料壓縮,每一列選擇更優的資料壓縮算法,大大提高了資料的壓縮比重。
- 由于資料壓縮比更好,一方面節省了磁盤空間,另一方面對于 cache 也有了更大的發揮空間。