閱讀946 返回首頁    go 阿裏雲 go 技術社區[雲棲]


CloudDBA初體驗:SQL優化建議

數據庫診斷和優化過程具有相當的複雜性,通常需要專業的DBA來解決。但在雲計算的今天,人力運維和支撐已經變得不可能,自動化,智能化運維和服務支持日益迫切。

阿裏雲數據庫團隊在這方麵不斷的探索和積累,產出了CloudDBA。其目的就是要把我們已知問題和最佳實踐能夠以最簡單的方式告訴用戶,把我們多年使用數據庫的經驗傳承給用戶,方便客戶使用雲上數據庫,給客戶帶來直接的價值。CloudDBA同時也在服務著內部業務,4000+的數據庫實例之前需要一個team的運維人員,到現在我們隻有一個同學,運維效率大幅提升。

CloudDBA一期給客戶輸出的功能包含數10項,迫不及待先給大家介紹SQL優化建議功能。

1. SQL優化方法

SQL對技術人員來說再熟悉不過,但開發人員和數據庫人員對其卻有不同的理解。比如開發人員看到的如下SQL語句,

屏幕快照 2017-09-27 16.04.04.png

在數據庫中卻是另外一種視圖:

屏幕快照 2017-09-27 16.08.25.png

CloudDBA的優化功能就幫助數據庫尋找最佳執行路徑,將其優化成更為簡潔和高效的視圖:

屏幕快照 2017-09-27 16.12.32.png

2. SQL優化示例

示例1

SQL條件下推是多數開發人員忽視的問題,詳細介紹及解法說明參見MySQL · 性能優化 · 條件下推到物化表 以及 MySQL · 性能優化 · MySQL常見SQL錯誤用法

該例子中的SQL在開發人員工作中經常出現:

  1. 聚合子查詢其實是先定義的一個視圖,之後用的時候再加條件出結果(SQL看起來簡潔^^);
  2. 條件是拚接出來的,或許還出了bug,匹配符號位置放錯了;

這樣的寫法性能肯定是好不了的。

屏幕快照 2017-09-27 16.23.09.png

有了CloudDBA後,這些問題都會直接提示給開發人員:

22.png

根據提示,創建索引,重寫SQL性能大幅提升:

33.png

示例2

再貼一個複雜點SQL語句。繼續體驗一下CloudDBA的自動化建議:

屏幕快照 2017-09-27 16.54.55.png


CloudDBA幫助客戶更輕鬆的運維數據庫,更好的利用到阿裏雲數據庫的性能。我們會不斷努力,致力於阿裏雲數據庫用戶體驗的提升!CloudDBA等待你的加入,實現更多閃耀的功能 。

最後更新:2017-09-27 23:33:04

  上一篇:go  【2017年杭州雲棲大會】10月來雲棲,又到了geek們狂歡的時間!雲服務器ECS大劇透
  下一篇:go  一張圖掌握移動Web前端所有技術(大前端、工程化、預編譯、自動化)