全部產品
Search
文件中心

AnalyticDB:PlanCache

更新時間:Jul 27, 2024

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 = ?;
  1. 開啟PlanCache功能,命令如下:

    SET ADB_CONFIG O_SPC_SCOPE=POINT_QUERY;
  2. 執行SQL查詢語句,該語句的執行計畫將被緩衝:

    SELECT * FROM tbl0 WHERE col0 = 666;
  3. 執行相同SQL Pattern語句時,會自動使用步驟2緩衝的執行計畫,減少SQL編譯最佳化時間:

    SELECT * FROM tbl0 WHERE col0 = 777;