一、引言
数据库自治服务(Database Autonomy Service,简称DAS)是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务,帮助用户消除数据库管理的复杂性及人工操作引发的服务故障。数据库自治服务DAS支持自动SQL优化,相比传统的优化方式,能够自动识别问题SQL,生成索引优化建议。
本文介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
二、数据导入
任务背景:一家拥有五十万名员工的公司,其办事处位于四个城市,分别是纽约、旧金山、波士顿和洛杉矶。每位员工都会被分配到一些项目中工作。我们需要确定驻扎在纽约、参与8号项目且年薪超过十万元的员工数量。
登录RDS控制台:
单击参数设置,将long_query_time的参数值设置为0.1(可在搜索框中搜索参数名,更快定位参数)。
修改完成后,单击提交参数。在修改参数对话框中,选择立即生效,单击确定。
注:该参数设置后,需要重启会话才能生效。因此如果先执行了登录数据库等其它步骤,在设置该参数后,需重新刷新DMS页面才能生效。
单击登录数据库按钮,输入数据库账号和密码进行登录。
复制如下链接至浏览器中,下载文件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
单击左侧列表的常用功能 > 数据导入,选择新创建的sampledb数据库,单击上传文件,选择刚刚下载的sampledb.sql文件,单击提交申请。
单击执行变更,在任务设置对话框中选择立即执行,单击确定执行,可将库表结构、实例数据导入到数据库中。
三、生成并优化慢SQL
单击左侧数据库实例选项卡,选择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;
执行之后,在控制台下方的执行列表可以看到实际执行时间。
说明:可单击执行列表右上角刷新按钮查看,执行结果状态。
登录下方链接DAS控制台,单击左侧列表的实例监控 > MySQL,找到目标实例单击实例ID进入详情。 https://das.console.aliyun.com/
单击左侧列表的请求分析 > 慢日志,查看慢日志明细,并单击优化按钮。
查看优化预期效果。在合理的等待(15s内),会直接显示优化建议,这里提出了一个增加索引的建议并进行复制。根据模型计算,预期性能将提升12倍。
四、执行优化后的SQL语句
返回DMS控制台。将复制的行存索引建议,粘贴至SQLConsole中单击执行按钮。在弹出的变更确认对话框中单击直接执行。
再次执行SELECT语句后,进入执行列表查看耗时,可见实际执行效率提升了26倍。
五、学习福利
想必你通过阅读,已经学会如何使用DAS实现数据库SQL优化。现在邀请你来到阿里云开发者社区参加活动,完成任务一,任务二即可领取羊羔绒加厚坐垫,限量500个(同一用户仅可领取一次奖品,用户完成任务后需点击“领取奖品”按钮进行领取)。
点击阅读原文,去体验如何使用DAS实现数据库SQL优化~