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

yizhihongxing

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

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

我们看看,如何使用 NineData 的 AI 功能完成 SQL 优化。

1. 创建数据源

登录进入控制台,并创建一个永久免费的数据源,用于优化 SQL(如果已经有数据源了则可以跳过这一步)。

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

登录进入NineData控制台

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

创建一个永久免费的数据源

2. 一个简单的案例

接着只需要在“ SQL 窗口”,输入想要优化的 SQL,并点击“智能优化”,耐心等待就好了。具体的:

点击右侧导航“SQL 开发->SQL 窗口”,进入一个数据源的 SQL 窗口

接着输入需要优化的 SQL,选中 SQL 并点击“SQL 智能优化”按钮即可

例如,我们在系统中发现了如下的慢 SQL 需要优化:

SELECT *

FROM t_user

WHERE region_id = '0571';
使用AI优化慢SQL,开发秒变DBA

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

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

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

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

点击智能优化按钮:

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

NineData系统对复杂的慢SQL处理

等待后,获得如下优化建议:

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

NineData智能对复杂的SQL优化

可以看到,首先给出了新建索引的建议;其次,智能优化引擎很敏锐的发现了在 WHERE 条件中对于某些列做了函数计算,可能很大程度上影响索引使用,并给出修改建议;最后,也非常准确的给出了关于覆盖索引的建议。

4. 交互式对话的解决数据库的问题

另外,NineData 还提供了对话式的“AI 智能”功能,可以直接问他一些关于数据库的问题。例如:可以直接问她“为什么表最好有主键”、“为什么字符集应该尽量使用 utf8mb4,而不是 utf8?”等。

具体的,首先,登录进入控制台,进入“SQL 开发->SQL 窗口”,并点击“AI 智能”,然后就可以直接提出相关的数据库问题。

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

使用NineData的SQL窗口”,并点击“AI智能

例如,这里关注的问题是:“为什么表最好有主键”、“为什么字符集应该尽量使用 utf8mb4,而不是 utf8?”,很快 AI 智能会给出回答:

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

为什么表最好有主键?

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

为什么字符集应该尽量使用 utf8mb4,而不是 utf8?

通过这些案例,我们可以看到,通过 NineData 的 AI SQL 优化能力,可以大大提高开发者日常 SQL 开发效率,也可以大大减轻 DBA 的工作负担。

原文链接:https://www.cnblogs.com/ninedata/p/17351983.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用AI优化慢SQL,开发秒变DBA - Python技术站

(0)
上一篇 2023年4月25日
下一篇 2023年4月25日

相关文章

  • MySQL游标(Cursor)的定义及使用方法详解

    MySQL游标(Cursor)是一种可在数据库中使用的数据结构,它被用于遍历结果集中的所有行并进行特定操作。游标通常用于存储过程和函数中,当需要一行一行地获取结果集中的数据时,它就变得非常有用了。 游标通常与SELECT语句一起使用,以便在结果集中获取数据。游标用于遍历结果集中的记录,并将结果集中的数据一行一行地存储或处理。游标顺序访问结果集中的每一行,并将…

    MySQL 2023年3月10日
    00
  • MySQL8.0.21安装步骤及出现问题解决方案

    MySQL8.0.21安装步骤及出现问题解决方案 MySQL是一种开源的关系型数据库管理系统,常用于构建Web应用程序。本篇文章介绍了MySQL8.0.21的安装步骤及出现问题的解决方案,希望对大家有所帮助。 1. 下载MySQL 首先,需要从MySQL官网(https://www.mysql.com/)下载MySQL8.0.21的安装包。在下载页面上,选择…

    MySQL 2023年5月18日
    00
  • MySQL系列之十一 日志记录

    关于“MySQL系列之十一 日志记录”的完整攻略,我会分享以下内容: 1. 什么是日志记录 MySQL的日志记录是指记录数据库的运行过程和操作行为。通过日志记录可以更好地了解数据库的运行状态、故障排查等功能。 MySQL主要有4种日志记录:- 错误日志(error log)- 查询日志(query log)- 慢查询日志(slow query log)- 二…

    MySQL 2023年5月18日
    00
  • 总结几种MySQL中常见的排名问题

    当我们处理与数据库的交互时,涉及到数据的排序和排名是非常常见的情况。MySQL作为常用的关系型数据库管理系统,它提供了多种排序和排名的函数和语法。接下来我将详细讲解几种MySQL中常见的排名问题。 一、基于单一字段排序 最简单的排序方式就是基于单一字段排序,这时候我们只需要使用ORDER BY语句加上一个或多个字段名就能够完成排序。例如: SELECT id…

    MySQL 2023年5月18日
    00
  • MySQL执行SQL语句的流程详解

    MySQL 执行 SQL 语句的流程详解 MySQL 是一种开源的,常见的关系型数据库管理系统。SQL (Structured Query Language)是一种用于管理关系型数据库的语言。在进行数据库操作时,我们需要编写 SQL 语句,MySQL 会根据 SQL 语句的执行计划实现数据的存储和管理。 MySQL 执行 SQL 语句的步骤 1. 连接数据库…

    MySQL 2023年5月19日
    00
  • MySQL mysqldump备份数据库(附带实例)

    MySQL mysqldump是MySQL自带工具中最常用的备份工具之一。它可以备份 MySQL 数据库的数据和结构,并且可以将这些备份数据还原到另一个 MySQL 数据库中。使用mysqldump进行备份可以方便、快捷、可靠地备份和恢复MySQL数据库。 使用mysqldump备份 MySQL 数据库 以下是使用mysqldump命令备份 MySQL 数据…

    MySQL 2023年3月10日
    00
  • 白嫖一个月的ES,完成了与MySQL的联动

    前言 《腾讯云 x Elasticsearch三周年》活动来了。文章写之前的思路是:在腾讯云服务器使用docker搭建ES。但是理想很丰满,显示很骨感,在操作过程中一波三折,最后还是含着泪美滋滋地,白嫖了一个月的腾讯云ES服务。 最后就是利用腾讯云的Elasticsearch和Kibana,和我在腾讯云服务器上搭建MySQL进行了一波联动,完成了数据库内部指…

    2023年4月8日
    00
  • mysql操作(精简版)

    一、数据库操作(建库、删库) 1、查看数据库:show databases; 2、创建数据库:DROP DATABASE 数据库名; 3、删除数据库:CREATE DATABASE 数据库名; 4、使用数据库:use 数据库名;   二、表操作(建表、删表、增删属性) 1、创建表: create table 表名(     列名1  类型(长度) [约束],…

    MySQL 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部