本文介紹了PolarDB MySQL版的列存索引特性。
簡介
當前主要面向OLTP情境,廣泛應用於線上業務,日常產生大量的資料。但是,基於行存的查詢效能並不能滿足所有應用情境的需求。通常情況下,為了實現複雜分析型查詢,需要將資料從PolarDB MySQL版匯出,然後匯入到外部專用的OLAP系統中再進行分析查詢。這樣一來,需要使用兩套資料庫系統,架構複雜性、營運工作量和成本都會大大增加。
PolarDB MySQL版重磅推出的列存索引(In-Memory Column Index,簡稱IMCI)面向OLAP情境巨量資料量複雜查詢。通過列存索引,PolarDB MySQL版實現了一體化的即時交易處理和即時資料分析的能力,成為一站式HTAP資料庫產品解決方案。通過一套資料庫系統,即可滿足業務的OLTP及OLAP需求。
實現形態
為了實現OLAP和OLTP的計算資源隔離,當前僅支援在唯讀節點上實現列存索引,即OLAP查詢請求只發給唯讀節點,而不會發給主節點。至於OLAP查詢請求是發給唯讀行存節點,還是唯讀列存節點,可根據行存/列存分流方案進行配置。
技術原理
列存索引特性在PolarDB MySQL版中的功能架構圖如下:
從以上架構圖可以看到,PolarDB MySQL版從儲存引擎、執行運算元、最佳化器三個層面設計了列存索引的特性:
在此架構下,PolarDB MySQL版實現了100%相容MySQL協議的基礎上,同時獲得數個數量級的查詢加速效果。
核心優勢
PolarDB MySQL版依託列存索引特性,具備如下優勢:
100%相容MySQL:列存具有與MySQL一致的資料類型系統,支援靈活的類型轉換,100%相容MySQL協議;
優秀的HTAP效能:PolarDB在OLTP方面本身具備良好效能。列存索引使其OLAP效能也與專用的OLAP資料庫系統處於同一水平;
行列混合儲存,降低成本:同時支援行儲存和列儲存兩種格式,且即時保證行列的事務級一致。列存更具有低成本的優勢。
適用情境
PolarDB MySQL版的列存索引特性提供了一站式HTAP產品體驗,可以應用於多種業務情境:
效能提升情況
列存索引功能對SQL查詢操作有明顯的加速作用,查詢效能甚至可以提升百倍。接下來我們以標準TPC-H測試的資料表和SQL為例,體驗列存索引對查詢的加速效果。
說明
本文的TPC-H的實現基於TPC-H的基準測試,並不能與發行的TPC-H基準測試結果相比較,本文中的測試並不符合TPC-H基準測試的所有要求。