“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 的工作负担。