智能運維:美團SQL Advisor的自動化SQL優化實現
SQLAdvisor 是由美團點評公司北京DBA團隊開發維護的 SQL 優化工具:輸入SQL,輸出索引優化建議。 它基於 MySQL 原生詞法解析,再結合 SQL 中的 where 條件以及字段選擇度、聚合條件、多表 Join 關係等最終輸出最優的索引優化建議。目前 SQLAdvisor 在公司內部大量使用,較為成熟、穩定。
上述實現時,涉及的函數為:mysql_sql_parse_join(TABLE_LIST join_table) mysql_sql_parse_join(Item join_condition) ,主要流程圖如下:
計算區分度
主要涉及的函數為:mysql_sql_parse_field_cardinality_new() 計算選擇度。
-
-
上述兩函數的流程圖如下所示:
添加被驅動表備選索引
輸出建議
SQLAdvisor版本更新
最後更新:2017-10-24 17:04:02