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;
文檔內容是否對您有幫助?