全部產品
Search
文件中心

Database Autonomy Service:自動SQL最佳化

更新時間:May 29, 2025

當資料庫出現慢SQL或SQL的執行效率對應用程式的運行效率產生較大影響時,您需要對SQL進行最佳化。資料庫自治服務DAS支援自動SQL最佳化,相比傳統的最佳化方式,能夠自動識別問題SQL,產生索引最佳化建議,並在不引發鎖表的情況下自動建立索引。

功能介紹

自動索引建立是DAS自動SQL最佳化的核心功能之一,其原理是使用MySQL核心原生支援的Online DDL,因此都不會像普通加索引那樣引發鎖表,詳情請參見SQL最佳化技術

前提條件

資料庫

地區

  • RDS MySQL高可用系列、三節點企業系列、叢集系列

  • PolarDB MySQL版的叢集版

    說明

    暫不支援PolarDB MySQL版的單節點叢集(原單節點執行個體)。

  • MyBase MySQL高可用版

華東1(杭州)、華東2(上海)、華南1(深圳)、華南2(河源)、華南3(廣州)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華東5(南京)、華東6(福州)、西南1(成都)、鄭州、中國(香港)、日本(東京)、韓國(首爾)、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、菲律賓(馬尼拉)、泰國(曼穀)、阿聯酋(杜拜)、沙特(利雅得)、德國(法蘭克福)、美國(矽谷)、美國(維吉尼亞)和英國(倫敦)

    功能限制

    不支援對使用X-Engine表的SQL進行診斷和最佳化。

    操作步驟

    1. 登入DAS控制台

    2. 在左側導覽列中,單擊智能營運中心 > 執行個體監控

    3. 找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。

    4. 在左側導覽列中,單擊自治中心

    5. 自治中心頁,單擊右側自治功能開關

    6. 自治功能管理 > 自治功能設定頁簽中,開啟自治功能開關,並在最佳化和限流頁簽勾選自動索引建立和刪除

      image

      • 僅SQL診斷:僅產生建議,不執行索引變更。

      • SQL診斷並自動索引建立:自動執行最佳化建議。

        說明

        DAS將在資料庫執行個體的可維護時間段可維護視窗內建立索引。

    7. 單擊確定

    8. 配置警示模板進行警示訂閱,以便及時瞭解資料庫執行個體的自動SQL最佳化情況。

      系統會推薦警示模板並添加對應自治事件的警示規則,您可以依照系統提示進行配置。

      說明
      • 如果您已經為執行個體配置了警示模板,請依照系統提示,在警示模板添加對應自治事件的警示規則。

      • 如果您需要自行設定警示模板和警示規則,請參見配置警示模板配置警示規則

    9. 選擇需要警示通知的警示聯絡組

      • 單擊新增連絡人...,添加新的警示連絡人。

      • 單擊新增聯絡組,添加新的警示聯絡組。

      • 單擊目標連絡人後的修改移除,修改或刪除已有連絡人的資訊。

      詳細操作請參見管理警示連絡人

    10. 單擊提交配置,並在彈出的對話方塊中確認警示配置。

    後續步驟

    1. 自治中心頁面,可以查看選定時間範圍內發生過的自動SQL最佳化事件。dd

    2. 單擊詳情,在慢SQL診斷(診斷最佳化)根因分析和建議頁簽裡查看問題SQLSQL最佳化,以及SQL最佳化索引推薦語句最佳化的詳細資料。ss

    相關文檔

    如果您需要手動最佳化目標SQL時,請參見SQL最佳化

    常見問題

    Q:DAS自動建立索引時,會導致長時間鎖表嗎?

    A:不會,DAS採用的是原生的Online DDL方式建立索引,此方法通常就是為了避免長時間鎖表。

    Q:在控制台中掃描到慢SQL的情況下,為什麼DAS沒有進行最佳化?

    A:並非所有的慢日誌都會被最佳化。只有在DAS核實當前SQL存在最佳化建議,並且執行最佳化操作能夠顯著提升效能的情況下,DAS才會實施該最佳化建議。如果當前SQL已經具備索引,或者經過最佳化後效能提升並不顯著,DAS將不會執行任何最佳化操作。

    相關API

    API

    描述

    UpdateAutoSqlOptimizeStatus

    批量開啟、修改或關閉自動SQL最佳化功能。

    GetSqlOptimizeAdvice

    查詢DAS自動SQL最佳化產生的診斷建議。

    GetInstanceSqlOptimizeStatistic

    擷取指定時間段內自動SQL最佳化任務的統計資料,包括任務總數和最大收益等。