慢 SQL 經常會讓應用程式響應變慢,輕者影響用戶體驗,嚴重的時候可能會導致服務不可用。如果,每次遇到慢 SQL 都求助於 DBA,一方面效率很低,另一方面也會很沒面子。所以,我們一起來看看如何使用AI能力給出超越一般DBA的 SQL 優化建議。NineData( www.ninedata.clou... ...
“AI不會替代他們,但善用AI的人會”
慢 SQL 經常會讓應用程式響應變慢,輕者影響用戶體驗,嚴重的時候可能會導致服務不可用。如果,每次遇到慢 SQL 都求助於 DBA,一方面效率很低,另一方面也會很沒面子。所以,我們一起來看看如何使用AI能力給出超越一般DBA的 SQL 優化建議。NineData( www.ninedata.cloud )面向每個開發人員提供了免費的 SQL 開發功能,同時也提供了免費的 AI SQL 優化功能。
我們看看,如何使用 NineData 的 AI 功能完成 SQL 優化。
1. 創建數據源
登錄進入控制台,並創建一個永久免費的數據源,用於優化 SQL(如果已經有數據源了則可以跳過這一步)。
2. 一個簡單的案例
接著只需要在“ SQL 視窗”,輸入想要優化的 SQL,並點擊“智能優化”,耐心等待就好了。具體的:
點擊右側導航“SQL 開發->SQL 視窗”,進入一個數據源的 SQL 視窗
接著輸入需要優化的 SQL,選中 SQL 並點擊“SQL 智能優化”按鈕即可
例如,我們在系統中發現瞭如下的慢 SQL 需要優化:
SELECT *
FROM t_user
WHERE region_id = '0571';
很快,就獲得如下的優化建議:
可以看到,在智能優化建議中,包括了常見的索引添加建議,也有容易忽略的“SELECT * ”優化,還有更加複雜一些覆蓋索引建議,已經具備了一般 DBA 的 SQL 智能優化能力。
3.一個較複雜的案例
再看一個更加複雜的案例吧:
SELECT *
FROM t_user
WHERE region_id = '0571'
AND YEAR(birth_date) >= 2012
ORDER BY reg_date
LIMIT 10
點擊智能優化按鈕:
等待後,獲得如下優化建議:
可以看到,首先給出了新建索引的建議;其次,智能優化引擎很敏銳的發現了在 WHERE 條件中對於某些列做了函數計算,可能很大程度上影響索引使用,並給出修改建議;最後,也非常準確的給出了關於覆蓋索引的建議。
4. 互動式對話的解決資料庫的問題
另外,NineData 還提供了對話式的“AI 智能”功能,可以直接問他一些關於資料庫的問題。例如:可以直接問她“為什麼表最好有主鍵”、“為什麼字元集應該儘量使用 utf8mb4,而不是 utf8?”等。
具體的,首先,登錄進入控制台,進入“SQL 開發->SQL 視窗”,並點擊“AI 智能”,然後就可以直接提出相關的資料庫問題。
例如,這裡關註的問題是:“為什麼表最好有主鍵”、“為什麼字元集應該儘量使用 utf8mb4,而不是 utf8?”,很快 AI 智能會給出回答:
通過這些案例,我們可以看到,通過 NineData 的 AI SQL 優化能力,可以大大提高開發者日常 SQL 開發效率,也可以大大減輕 DBA 的工作負擔。