中蓍 发表于 2023-4-25 13:35:45

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

来源:https://www.cnblogs.com/ninedata/p/17351983.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 使用AI优化慢SQL,开发秒变DBA