文档

自动SQL优化

更新时间:

当数据库出现慢SQL或SQL的执行效率对应用程序的运行效率产生较大影响时,您需要对SQL进行优化。数据库自治服务DAS支持自动SQL优化,相比传统的优化方式,能够自动识别问题SQL,生成索引优化建议,并在不引发锁表的情况下自动创建索引。

前提条件

  • 目标数据库实例为:

    数据库

    地域

    • RDS MySQL高可用系列、三节点企业系列、集群系列

    • PolarDB MySQL版的集群版

      说明

      暂不支持PolarDB MySQL版的单节点集群(原单节点实例)。

    • MyBase MySQL高可用版

    华东1(杭州)、华东2(上海)、华南1(深圳)、华南2(河源)、华南3(广州)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华东5(南京)、华东6(福州)、西南1(成都)、郑州、中国(香港)、日本(东京)、韩国(首尔)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷)、澳大利亚(悉尼)、印度(孟买)关停中、阿联酋(迪拜)、沙特(利雅得)、德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)和英国(伦敦)

    RDS PostgreSQL

    华东1(杭州)、华东2(上海)、华南1(深圳)、华南2(河源)、华南3(广州)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、西南1(成都)、中国(香港)、日本(东京)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、澳大利亚(悉尼)、印度(孟买)关停中、阿联酋(迪拜)、德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)和英国(伦敦)

  • 目标数据库实例已开启SQL洞察,详情请参见SQL洞察

    说明

    自动SQL优化针对单条SQL进行优化。开启SQL洞察后,系统会对被优化的SQL及相关SQL进行性能跟踪,如果性能出现衰退,系统会自动回滚,避免创建的索引影响其他SQL的性能。未开启SQL洞察时,系统仅会对被优化的SQL进行性能跟踪,覆盖不够全面。因此,建议开启SQL洞察,以获得更全面的性能优化效果。

功能介绍

自动索引创建是DAS自动SQL优化功能的一种,其原理是使用MySQL内核原生支持的Online DDL,因此都不会像普通加索引那样引发锁表,详情请参见SQL优化技术

功能限制

不支持对使用X-Engine表的SQL进行诊断和优化。

操作步骤

  1. 登录DAS控制台

  2. 在左侧导航栏中,单击实例监控

  3. 找到目标实例,单击实例ID,进入目标实例详情页。

  4. 在左侧导航栏中,单击自治中心

  5. 自治中心页,单击右侧自治功能开关

  6. 自治功能管理 > 自治功能设置页签中,打开自治功能开关,并在优化和限流页签勾选自动索引创建和删除

    • 若选择仅SQL诊断:对SQL进行每日定时诊断并得到索引优化建议,但不会将索引创建到您的实例上。

    • 若选择SQL诊断并自动索引创建:对SQL进行每日定时诊断并得到索引优化建议,并将索引创建到您的实例上。

      说明

      DAS将在数据库实例的可维护时间段可维护窗口内创建索引。

  7. 单击确定

  8. 配置告警模板进行告警订阅,以便及时了解数据库实例的自动SQL优化情况。

    系统会推荐告警模板并添加对应自治事件的告警规则,您可以依照系统提示进行配置。

    说明
    • 如果您已经为实例配置了告警模板,请依照系统提示,在告警模板添加对应自治事件的告警规则。

    • 如果您需要自行设置告警模板和告警规则,请参见配置告警模板配置告警规则

  9. 选择需要告警通知的告警联系组

    • 单击添加联系人,添加新的告警联系人。

    • 单击新增联系组,添加新的告警联系组。

    • 单击目标联系人后的修改移除,修改或删除已有联系人的信息。

    详细操作请参见管理告警联系人

  10. 单击提交配置,并在弹出的对话框中确认告警配置。

后续步骤

  1. 自治中心页面,可以查看选定时间范围内发生过的自动SQL优化事件。dd

  2. 单击详情,在慢SQL诊断(诊断优化)根因分析和建议页签里查看问题SQLSQL优化,以及SQL优化索引推荐语句优化的详细信息。ss

相关文档

如果您需要手动优化目标SQL时,请参见SQL优化

相关API

API

描述

UpdateAutoSqlOptimizeStatus

批量开启、修改或关闭自动SQL优化功能。

GetSqlOptimizeAdvice

查询DAS自动SQL优化产生的诊断建议。

GetInstanceSqlOptimizeStatistic

获取指定时间段内自动SQL优化任务的统计数据,包括任务总数和最大收益等。