列式存儲主要的目的有兩個:數據庫
OLAP,也叫聯機分析處理(Online Analytical Processing)系統,有的時候也叫DSS決策支持系統,就是咱們說的數據倉庫。在這樣的系統中,語句的執行量不是考覈標準,由於一條語句的執行時間可能會很是長,讀取的數據也很是多。因此,在這樣的系統中,考覈的標準每每是磁盤子系統的吞吐量(帶寬),如能達到多少MB/s的流量。併發
在OLAP系統中,常使用分區技術、並行技術。性能
分區技術在OLAP系統中的重要性主要體如今數據庫管理上,好比數據庫加載,能夠經過分區交換的方式實現,備份能夠經過備份分區表空間實現,刪除數據能夠經過分區進行刪除,至於分區在性能上的影響,它可使得一些大表的掃描變得很快(只掃描單個分區)。另外,若是分區結合並行的話,也可使得整個表的掃描會變得很快。總之,分區主要的功能是管理上的方便性,它並不能絕對保證查詢性能的提升,有時候分區會帶來性能上的提升,有時候會下降。優化
在OLAP系統中,不須要使用綁定(BIND)變量,由於整個系統的執行量很小,分析時間對於執行時間來講,能夠忽略,並且可避免出現錯誤的執行計劃。可是OLAP中能夠大量使用位圖索引,物化視圖,對於大的事務,儘可能尋求速度上的優化,沒有必要像OLTP要求快速提交,甚至要刻意減慢執行的速度。spa
綁定變量真正的用途是在OLTP系統中,這個系統一般有這樣的特色,用戶併發數很大,用戶的請求十分密集,而且這些請求的SQL 大多數是能夠重複使用的。設計
OLTP,也叫聯機事務處理(Online Transaction Processing),表示事務性很是高的系統,通常都是高可用的在線系統,以小的事務以及小的查詢爲主,評估其系統的時候,通常看其每秒執行的Transaction以及Execute SQL的數量。在這樣的系統中,單個數據庫每秒處理的Transaction每每超過幾百個,或者是幾千個,Select 語句的執行量每秒幾千甚至幾萬個。典型的OLTP系統有電子商務系統、銀行、證券等,如美國eBay的業務數據庫,就是很典型的OLTP數據庫。blog
OceanBase經過列組支持行列混合存儲,每一個列組存儲多個常常一塊兒訪問的列。
如上圖所示,OceanBase SSTable首先按照列組存儲,每一個列組內部再按行存儲。分爲幾種狀況:索引