一、引言
數據庫自治服務(DatabaseAutonomyService,簡稱DAS)是一種基於機器學習和專家經驗實現數據庫自感知、自修復、自優化、自運維及自安全的雲服務,幫助用戶消除數據庫管理的復雜性及人工操作引發的服務故障。數據庫自治服務DAS支持自動SQL優化,相比傳統的優化方式,能夠自動識別問題SQL,生成索引優化建議。
本文介紹如何通過數據庫自治服務DAS對RDSMySQL高可用實例進行SQL優化,包含購買RDS實例並創建數據庫、數據導入、生成並優化慢SQL、執行優化後的SQL語句等實驗步驟。完成任務,即可領取羊羔絨加厚坐墊,限量500個,先到先得。
二、數據導入
任務背景:一家擁有五十萬名員工的公司,其辦事處位於四個城市,分別是紐約、舊金山、波士頓和洛杉磯。每位員工都會被分配到一些項目中工作。我們需要確定駐扎在紐約、參與8號項目且年薪超過十萬元的員工數量。
登錄RDS控制臺:
-
單擊參數設置,將long_query_time的參數值設置為0.1(可在搜索框中搜索參數名,更快定位參數)。

-
修改完成後,單擊提交參數。在修改參數對話框中,選擇立即生效,單擊確定。
注:該參數設置後,需要重啟會話才能生效。因此如果先執行了登錄數據庫等其它步驟,在設置該參數後,需重新刷新DMS頁面才能生效。


-
單擊登錄數據庫按鈕,輸入數據庫賬號和密碼進行登錄。

-
復制如下鏈接至瀏覽器中,下載文件sampledb.sql。
說明
下載文件後,您可以通過在本地終端輸入以下命令來檢查文件的MD5哈希值,以確認其安全性。(sampledb.sql文件MD5哈希值為53348ab96c68051efa7b181eb8acec00)
-
MAC:md5文件路徑/sampledb.sql。
-
Windows:certutil–hashfile"文件路徑/sampledb.sql"MD5。
https://developer-labfileapp.oss-cn-hangzhou.aliyuncs.com/database/sampledb.sql

-
單擊左側列表的常用功能>數據導入,選擇新創建的sampledb數據庫,單擊上傳文件,選擇剛剛下載的sampledb.sql文件,單擊提交申請。

-
單擊執行變更,在任務設置對話框中選擇立即執行,單擊確定執行,可將庫表結構、實例數據導入到數據庫中。

三、生成並優化慢SQL
-
單擊左側數據庫實例選項卡,選擇sampledb數據庫。執行如下命令,查詢駐扎在紐約、參與8號項目且年薪超過十萬元的員工數量。
SELECTCOUNT(*)ASemployee_count
FROMemployeese
JOINprojectspONe.employee_id=p.employee_id
WHEREe.city='紐約'
ANDp.project_name='Project_8'
ANDe.salary>100000;

執行之後,在控制臺下方的執行列表可以看到實際執行時間。
說明:可單擊執行列表右上角刷新按鈕查看,執行結果狀態。

-
登錄下方鏈接DAS控制臺,單擊左側列表的實例監控>MySQL,找到目標實例單擊實例ID進入詳情。 https://das.console.aliyun.com/

-
單擊左側列表的請求分析>慢日志,查看慢日志明細,並單擊優化按鈕。

-
查看優化預期效果。在合理的等待(15s內),會直接顯示優化建議,這裡提出了一個增加索引的建議並進行復制。根據模型計算,預期性能將提升12倍。

四、執行優化後的SQL語句
-
返回DMS控制臺。將復制的行存索引建議,粘貼至SQLConsole中單擊
執行按鈕。在彈出的變更確認對話框中單擊直接執行。

-
再次執行SELECT語句後,進入執行列表查看耗時,可見實際執行效率提升了26倍。

五、學習福利
想必你通過閱讀,已經學會如何使用DAS實現數據庫SQL優化。現在邀請你來到阿裡雲開發者社區參加活動,完成任務一,任務二即可領取羊羔絨加厚坐墊,限量500個(同一用戶僅可領取一次獎品,用戶完成任務後需點擊“領取獎品”按鈕進行領取)。
點擊閱讀原文,去體驗如何使用DAS實現數據庫SQL優化~