写点什么

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

作者:NineData
  • 2023-04-25
    浙江
  • 本文字数:1011 字

    阅读完需:约 3 分钟

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

“AI 不会替代他们,但善用 AI 的人会”


慢 SQL 经常会让应用程序响应变慢,轻者影响用户体验,严重的时候可能会导致服务不可用。如果,每次遇到慢 SQL 都求助于 DBA,一方面效率很低,另一方面也会很没面子。所以,我们一起来看看如何使用 AI 能力给出超越一般 DBA 的 SQL 优化建议。NineData( https://www.ninedata.cloud/sqlsql)面向每个开发人员提供了免费的 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 的工作负担。

用户头像

NineData

关注

NineData公众号(ID:NineData-Cloud) 2022-11-30 加入

主要产品功能有 SQL开发、数据复制、数据备份及数据对比等功能,可以轻松完成日常数据库开发、数据安全访问、生产数据库变更与发布、数据库备份恢复、数据迁移、容灾多活、数据仓库及数据湖构建等核心应用场景。

评论

发布
暂无评论
使用AI优化慢SQL,开发秒变DBA_sql_NineData_InfoQ写作社区