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