使用DAS进行数据库SQL优化的实用指南

利用DAS进行RDS MySQL SQL优化,操作简单,效率提高显著,掌握实用技巧!

原文标题:如何使用自治服务DAS实现数据库SQL优化?

原文作者:阿里云开发者

冷月清谈:

数据库自治服务(DAS)是通过机器学习和经验实现数据库自感知、自修复、自优化的云服务,简化数据库管理。本文详细介绍了如何通过DAS对RDS MySQL高可用实例进行SQL优化,包括购买RDS实例、数据库创建、数据导入、慢SQL生成与优化的过程。通过设置参数和执行慢查询,用户可以获取优化建议并提升SQL执行效率。优化后,示例执行效率提升了26倍。此外,完成相关任务还可参与活动赢取奖品。

怜星夜思:

1、大家觉得传统SQL优化和DAS自动优化最大的区别是什么?
2、使用DAS后,有哪些好的实践经验可以分享?
3、对于初学者来说,如何更好地掌握DAS的使用?

原文内容

一、引言

数据库自治服务(Database Autonomy Service,简称DAS)是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务,帮助用户消除数据库管理的复杂性及人工操作引发的服务故障。数据库自治服务DAS支持自动SQL优化,相比传统的优化方式,能够自动识别问题SQL,生成索引优化建议。

本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。邀请好友共同参与活动,还可赢取哨鸟投影键盘 M1、转轮日历等精美好礼!

二、数据导入

任务背景:一家拥有五十万名员工的公司,其办事处位于四个城市,分别是纽约、旧金山、波士顿和洛杉矶。每位员工都会被分配到一些项目中工作。我们需要确定驻扎在纽约、参与8号项目且年薪超过十万元的员工数量。

登录RDS控制台:

  1. 单击参数设置,将long_query_time的参数值设置为0.1(可在搜索框中搜索参数名,更快定位参数)。

  1. 修改完成后,单击提交参数。在修改参数对话框中,选择立即生效,单击确定

注:该参数设置后,需要重启会话才能生效。因此如果先执行了登录数据库等其它步骤,在设置该参数后,需重新刷新DMS页面才能生效。

  1. 单击登录数据库按钮,输入数据库账号和密码进行登录。

  1. 复制如下链接至浏览器中,下载文件sampledb.sql

说明

下载文件后,您可以通过在本地终端输入以下命令来检查文件的MD5哈希值,以确认其安全性。(sampledb.sql文件MD5哈希值为53348ab96c68051efa7b181eb8acec00

  • MAC :md5 文件路径/sampledb.sql

  • Windows:certutil -hashfile "文件路径/sampledb.sql" MD5

https://developer-labfileapp.oss-cn-hangzhou.aliyuncs.com/database/sampledb.sql
该sql表示一家拥有五十万名员工的公司,其办事处位于四个城市,分别是纽约、旧金山、波士顿和洛杉矶。每位员工都会被分配到一些项目中工作。为了管理这些关系,我们需要使用员工表和项目分配表,具体结构如下所示。

  1. 单击左侧列表的常用功能 > 数据导入,选择新创建的sampledb数据库,单击上传文件,选择刚刚下载的sampledb.sql文件,单击提交申请

  1. 单击执行变更,在任务设置对话框中选择立即执行,单击确定执行,可将库表结构、实例数据导入到数据库中。

三、生成并优化慢SQL

  1. 单击左侧数据库实例选项卡,选择sampledb数据库。执行如下命令,查询驻扎在纽约、参与8号项目且年薪超过十万元的员工数量。

SELECT COUNT(*) AS employee_count
FROM employees e
JOIN projects p ON e.employee_id = p.employee_id
WHERE e.city = '纽约'
 AND p.project_name = 'Project_8'
 AND e.salary > 100000;

执行之后,在控制台下方的执行列表可以看到实际执行时间。

说明:可单击执行列表右上角刷新按钮查看,执行结果状态。

  1. 登录下方链接DAS控制台,单击左侧列表的实例监控 > MySQL,找到目标实例单击实例ID进入详情。

    https://das.console.aliyun.com/

  1. 单击左侧列表的请求分析 > 慢日志,查看慢日志明细,并单击优化按钮。

  1. 查看优化预期效果。在合理的等待(15s内),会直接显示优化建议,这里提出了一个增加索引的建议并进行复制。根据模型计算,预期性能将提升12倍。

四、执行优化后的SQL语句

  1. 返回DMS控制台。将复制的行存索引建议,粘贴至SQLConsole中单击图片执行按钮。在弹出的变更确认对话框中单击直接执行

  1. 再次执行SELECT语句后,进入执行列表查看耗时,可见实际执行效率提升了26倍。

五、学习福利

想必你通过阅读,已经学会如何使用DAS实现数据库SQL优化。现在邀请你来到阿里云开发者社区参加活动,完成任务一,任务二即可领取羊羔绒加厚坐垫,限量500个(同一用户仅可领取一次奖品,用户完成任务后需点击“领取奖品”按钮进行领取)。邀请好友完成任务一和任务二,即有机会获得哨鸟投影键盘 M1转轮日历等精美好礼!

点击阅读原文,去体验如何使用DAS实现数据库SQL优化~


多参加社区活动,大家交流技巧会提升更多灵感!我就是在群里学到的很多窍门,实在太实用了!

我认为最大区别在于人工干预的多少。传统优化需要DBA手动分析每个SQL,而DAS通过自动识别问题SQL,能大大减轻负担。

保持监控,关注慢日志是个好习惯,能更及时地反馈数据库健康状态。加上DAS推荐的索引,整体性能提升明显。

呵呵,DAS就像是给数据库安了个智能脑袋,能自动调节;传统优化就像是靠经验丰富的医生看病,可能慢点但能个性化解决问题!

建议从官方文档入手,结合实例练习。看完理论后实践效果更明显,也能更快理解各项功能。

可以找一些视频教程,跟着直播操作更容易,见到实际效果比较直观!

我觉得在使用DAS时,不要过于依赖自动化,定期还是要回头看看数据库的具体情况,确认没有盲点。

传统方法有时候需要深入理解应用逻辑,DAS更偏向于数据驱动,能快速响应数据库的状态。不过我觉得,人工的经验仍然很重要,尤其在复杂场景下。

我觉得参与论坛的讨论也很重要,不同人的观点能拓展视野,避免走入死胡同。