免費體驗PolarDB MySQL列存索引(IMCI)
本文介紹了如何免費體驗PolarDB MySQL版列存索引(IMCI)功能。
背景
PolarDB列存索引適用于:對在線數據有輕量型數據分析需求的場景,如實時報表;ETL數據加速計算場景:依托PolarDB基于列存索引提供的強大而靈活的計算能力,在PolarDB中使用SQL來實現ETL功能。
列存索引的核心優勢如下:
100%兼容MySQL:列存具有與MySQL一致的數據類型系統,支持靈活的類型轉換,100%兼容MySQL協議。
行列混合存儲,降低成本:同時支持行存儲和列存儲兩種格式,且實時保證行列的事務級一致。列存更具有低成本的優勢。
優秀的輕量化數據分析能力:使用列存索引加速部分數據分析應用場景。
阿里云提供了數據庫解決方案功能體驗館,提供真實免費的PolarDB集群環境和開箱即用的測試方法,您可以在線快捷體驗IMCI帶來的查詢效率提升效果。
影響
本功能體驗不涉及生產環境的部署,因此不會影響業務。
費用
本次體驗中,由于體驗涉及到的資源不歸屬于您,因此不會產生任何費用,您可以放心體驗。
體驗內容
體驗環境
在本免費體驗中,阿里云提供了預置環境供您操作體驗,預置環境的詳情如下:
集群:提供了一個PolarDB MySQL版集群。具體如下:
內核版本: 8.0.2.2.20
產品版本:企業版
系列:集群版通用規格
集群規格:集群包含1個主節點、1個只讀節點和1個只讀列存節點,規格都為4核8 GB
存儲類型: PSL5
測試數據集:集群中預置了標準測試集TPCH 100G的數據集,其中具體查詢所用的表為part表,數據量為20,000,000條數據。
觀測指標
CPU占用率:集群中主節點、只讀節點和只讀列存節點的平均CPU使用率。單位:%。
查詢耗時:執行特定SQL所耗費的時間。單位:秒。
操作步驟
進入瑤池解決方案體驗館。
單擊核心功能體驗,然后單擊列存索引-加速TP復雜SQL查詢的免費體驗按鈕,進入如下頁面:
單擊頁面下方的創建免費體驗任務按鈕。
在確認創建IMCI任務對話框中,單擊確定。
稍等片刻后,可以看到您創建的體驗任務。
單擊查看詳情,進入實時查詢體驗頁面。
首先執行未開啟IMCI功能的正常查詢任務。
說明請根據頁面按鈕提示,手動單擊按鈕執行每一步操作。若在倒計時結束時沒有手動單擊按鈕,則會自動執行對應操作。
整個體驗過程中,您可以在左側的趨勢圖中觀測CPU占用率。
單擊啟動任務按鈕。
單擊切換到普通查詢庫按鈕,自動執行如下命令,切換至普通查詢庫。
use tpch;
單擊查看執行計劃按鈕,自動執行如下命令,查看如下SQL的執行計劃。
explain format=TREE SELECT SUM(p_retailprice), AVG(p_retailprice) -> , MIN(p_retailprice), MAX(p_retailprice) -> FROM part -> GROUP BY p_type -> ORDER BY 1 -> LIMIT 1;
返回結果如下:
+-----------------------------------------------------------------------------+ | EXPLAIN | +-----------------------------------------------------------------------------+ | -> Limit: 1 row(s) -> Sort: <temporary>.SUM(p_retailprice), limit input to 1 row(s) per chunk -> Table scan on <temporary> -> Aggregate using temporary table -> Table scan on part (cost=1817555.30 rows=17644998) | +-----------------------------------------------------------------------------+ 1 row in set (0.00 sec)
單擊執行SQL按鈕,自動執行以下SQL語句:
SELECT SUM(p_retailprice), AVG(p_retailprice) -> , MIN(p_retailprice), MAX(p_retailprice) -> FROM part -> GROUP BY p_type -> ORDER BY 1 -> LIMIT 1;
返回結果如下,執行時間為23.73秒。
+--------------------+--------------------+--------------------+--------------------+ | SUM(p_retailprice) | AVG(p_retailprice) | MIN(p_retailprice) | MAX(p_retailprice) | +--------------------+--------------------+--------------------+--------------------+ | 198461679.87 | 1498.366804 | 901.47 | 2098.51 | +--------------------+--------------------+--------------------+--------------------+ 1 row in set (23.73 sec)
然后執行開啟IMCI功能后的查詢任務。
說明請根據頁面按鈕提示,手動單擊按鈕執行每一步操作。若在倒計時結束時沒有手動單擊按鈕,則會自動執行對應操作。
整個體驗過程中,您可以在左側的趨勢圖中觀測CPU占用率。
單擊切換到IMCI讀Endpoint,通過包含只讀列存節點的集群地址(Endpoint)連接到同一個查詢庫。
說明由于切換endpoint連接數據庫的過程涉及密碼,因此此處只展示連接成功后切換至tpch數據庫的SQL語句。
use tpch;
單擊查看執行計劃按鈕,自動執行如下命令,查看如下SQL的執行計劃。
explain format=TREE SELECT SUM(p_retailprice), AVG(p_retailprice) -> , MIN(p_retailprice), MAX(p_retailprice) -> FROM part -> GROUP BY p_type -> ORDER BY 1 -> LIMIT 1;
返回結果如下:
+----+--------------------------+------+--------------------------------------------------------------+ | ID | Operator | Name | Extra Info | +----+--------------------------+------+--------------------------------------------------------------+ | 1 | Select Statement | | IMCI Execution Plan (max_dop = 4, max_query_mem = 858993459) | | 2 | └─Compute Scalar | | | | 3 | └─Limit | | Offset=0 Limit=1 | | 4 | └─Sort | | Sort Key: SUM(part.p_retailprice) ASC | | 5 | └─Hash Groupby | | Group Key: part.p_type | | 6 | └─Table Scan | part | | +----+--------------------------+------+--------------------------------------------------------------+ 6 rows in set (0.01 sec)
單擊執行SQL按鈕,自動執行以下SQL語句:
SELECT SUM(p_retailprice), AVG(p_retailprice) -> , MIN(p_retailprice), MAX(p_retailprice) -> FROM part -> GROUP BY p_type -> ORDER BY 1 -> LIMIT 1;
返回結果如下,執行時間為0.58秒。
+--------------------+--------------------+--------------------+--------------------+ | SUM(p_retailprice) | AVG(p_retailprice) | MIN(p_retailprice) | MAX(p_retailprice) | +--------------------+--------------------+--------------------+--------------------+ | 198461679.87 | 1498.366804 | 901.47 | 2098.51 | +--------------------+--------------------+--------------------+--------------------+ 1 row in set (0.58 sec)
整個執行SQL的過程中,您可以在左側趨勢圖中觀測集群平均CPU使用率的變化情況。
說明由于實時監控數據可能存在延遲,為了確保展示完整的CPU變化情況,趨勢圖中會在SQL執行完后,自動延長一定監控時間(2~3秒)。
(可選)對于已創建的任務,您可以在IMCI頁面,單擊體驗記錄,在任務列表中,單擊全部任務或我的任務,查看體驗結果及其詳情。
結果分析
列存索引IMCI對查詢有明顯加速作用
從執行時間上看,當切換至包含只讀列存節點的Endpoint后,復雜查詢自動由只讀列存節點執行,執行時間大幅縮短,從23.73秒縮短至0.58秒。
從執行計劃上看,當切換至包含只讀列存節點的Endpoint后,執行計劃包含IMCI Execution Plan,即表示使用列存索引加速功能。
列存索引IMCI對查詢的處理更高效
由于實時監控數據可能存在延遲,為了確保展示完整的CPU變化情況,趨勢圖中會在SQL執行完后,自動延長一定監控時間(2~3秒)。
從執行時間和對應的CPU占用率可以看到,IMCI通過更低的CPU占用率實現了更快的查詢。
相關內容
專家面對面
您可以加入官方釘釘群進行咨詢,獲取更多技術支持。釘釘群號:27520023189。