使用AI优化慢SQL,开发秒变DBA

“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_user

WHERE region_id = '0571';

NineData系统中发现了如下的慢 SQL 需要优化

很快,就获得如下的优化建议:

NineData智能SQL优化

可以看到,在智能优化建议中,包括了常见的索引添加建议,也有容易忽略的“SELECT * ”优化,还有更加复杂一些覆盖索引建议,已经具备了一般 DBA 的 SQL 智能优化能力。

3.一个较复杂的案例

再看一个更加复杂的案例吧:

SELECT *

FROM t_user

WHERE region_id = '0571'

AND YEAR(birth_date) >= 2012

ORDER BY reg_date

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

posted @ 2023-04-25 10:52  NineData  阅读(223)  评论(0编辑  收藏  举报