AnalyticDB for MySQL的PlanCache功能可以緩衝SQL的執行計畫,執行相同SQL Pattern語句時會使用緩衝的執行計畫,從而減少SQL的編譯最佳化時間,提升系統的查詢效能。本文介紹如何開啟PlanCache功能以及PlanCache功能的使用樣本。
前提條件
AnalyticDB for MySQL叢集需同時滿足以下條件:
叢集為數倉版或湖倉版。
叢集核心版本需為3.1.10.0及以上版本。
說明
查看湖倉版叢集的核心版本,請參見如何查看執行個體版本資訊。如需升級核心版本,請聯絡支援人員。
背景資訊
當查詢的並發數很高時,SQL的編譯最佳化時間會成為系統效能的瓶頸,PlanCache功能將SQL的執行計畫緩衝後,後續相關的SQL語句會直接使用緩衝的執行計畫,從而減少SQL的編譯最佳化時間,提升系統的查詢效能。
目前PlanCache功能僅適用於高並發點查情境,非點查情境不推薦使用。
開啟或關閉PlanCache功能
PlanCache功能預設關閉,您可以通過下列命令開啟或關閉PlanCache功能。
開啟PlanCache功能:
SET ADB_CONFIG O_SPC_SCOPE=POINT_QUERY;
關閉PlanCache功能:
SET ADB_CONFIG O_SPC_SCOPE=NONE;
使用樣本
假設您有以下高並發點查請求:
SELECT * FROM tbl0 WHERE col0 = ?;
開啟PlanCache功能,命令如下:
SET ADB_CONFIG O_SPC_SCOPE=POINT_QUERY;
執行SQL查詢語句,該語句的執行計畫將被緩衝:
SELECT * FROM tbl0 WHERE col0 = 666;
執行相同SQL Pattern語句時,會自動使用步驟2緩衝的執行計畫,減少SQL編譯最佳化時間:
SELECT * FROM tbl0 WHERE col0 = 777;