列存
數據庫以行、列的二維表的形式存儲數據,但 是卻以一維字符串的方式存儲,例如以下的一個表:
EmpId |
Lastname |
Firstname |
Salary |
1 |
Smith |
Joe |
40000 |
2 |
Jones |
Mary |
50000 |
3 |
Johnson |
Cathy |
44000 |
這個簡單的表包括員工代碼(EmpId), 姓名字段(Lastname and Firstname)及工資(Salary).
這個表 存儲在電腦的內存(RAM)和存儲(硬盤)中。雖然內存和硬盤在機製上不同,電腦的操作係統是以同樣的方式存儲的。數據庫必須把這個二維表存儲在一係列一 維的“字節”中,又操作係統寫到內存或硬盤中。
行式數據庫把一行中的數據值串在一起存儲起來,然後再存儲下一行的數據,以此類推。
1,Smith,Joe,40000;2,Jones,Mary,50000;3,Johnson,Cathy,44000;
列 式數據庫把一列中的數據值串在一起存儲起來,然後再存儲下一列的數據,以此類推。
1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000;
特點
· 良 好的壓縮比。由於大多數數據庫設計都有冗餘,如此一來,壓縮比非常高,把40多M的數據導入infobright,冇想到數據文件隻有1M多
· 列 上的計算非常的快。
· 方便MapReduce和Key-value模型的融合
· 讀取整行的數據較慢,但部分數據較快