PolarDB MySQL版默认将执行时间超过1秒的SQL语句定义为慢SQL,并在控制台提供SQL分析功能。您可以查看慢日志的趋势和统计信息。此外,系统还提供相关SQL的优化建议和诊断分析,便于您进行深入分析与优化。
前置检查(可选)
为确保您能正常查看慢SQL日志,请核实您的账户是否已授权AliyunHDMFullAccess权限。若需进行更精细的权限管理,您可以使用自定义策略来授权RAM用户,以便对PolarDB进行灵活的管控设置。
注意事项
慢日志的最大长度为16 KB,超过该长度的部分将被截断。
查看慢SQL
登录PolarDB控制台,在左侧导航栏单击集群列表,选择集群所在地域,并单击目标集群ID进入集群详情页。
在左侧导航栏中,选择 。
慢 SQL页面中分为以下三种功能:
慢日志分析
在慢日志分析页签,选择需要查看的时间段,查看该时间段内慢日志趋势、事件分布、慢日志统计和慢日志明细。
说明选择时间范围时,查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过7天,您可以查询最近一个月内的慢日志信息。
您可以在慢日志趋势图中选择某个时间点,查看该时间点的慢日志统计和慢日志明细。
说明如果慢日志语句内容过长,没有完整展示,您可以将鼠标指针放置在对应的慢日志语句上,系统将以弹框的形式展示完整的慢日志语句。
在事件分布区域:
可以查询到指定时间范围内的慢日志事件,单击后可查询事件详情。
您可以在节点ID下拉框区域,查看每个节点的慢请求数量。
单击
,可以将慢日志信息保存到本地查看。
单击
,可携带当前已选择和输入的参数,跳转至OpenApi控制台,进行API调试。
在慢日志统计区域:
在列表上侧,可选择过滤条件,对数据进行筛选,不同的数据库引擎可筛选条件不同。
单击目标SQL模板SQL ID列的数据ID,可查看包含用户分布、客户端分布和指标趋势的相关性及明细列表。
单击目标SQL模板操作列的优化,在弹出的SQL诊断优化对话框中,查看SQL诊断结果。
若您采纳诊断建议,单击页面右上角的复制,并将优化后的SQL粘贴到数据库客户端或DMS上执行,若不采纳诊断建议,可直接单击取消结束诊断。
说明DAS会根据SQL的复杂程度、对应表的数据量、数据库负载等进行SQL诊断,诊断建议的返回时间可能会超过20秒。完成诊断后,SQL诊断引擎会给出诊断结果、优化建议和预期优化收益,您可以根据诊断结果确认是否采纳建议。
单击目标SQL模板操作列的限流,在SQL限流页面配置限流参数,对目标SQ进行限流。详细操作请参见SQL限流。
对于PolarDB MySQL版数据库实例,单击目标SQL模板操作列的IMCI,查看列存索引(IMCI)的相关文档。
说明当PolarDB MySQL版数据库实例未购买列存索引节点,且慢日志的最大执行时间超过20秒,最大扫描行超过20万行时,显示IMCI按钮。
对于大数据量复杂查询,推荐使用列存索引(IMCI)提升查询性能。
在慢日志明细区域,单击目标SQL操作列的优化和限流,也可对目标SQL进行SQL诊断优化和SQL限流。
自动SQL优化建议
自动SQL优化建议页面,选择需要查看的时间段。
开启自动SQL优化:自动识别问题SQL,生成索引优化建议,并在不引发锁表的情况下自动创建索引。
说明您可以根据业务查看详情请参见自动SQL优化。
查询治理
在查询治理页,查看查询治理结果。
查询治理结果概览:查看系统打标分类后的结果数据。
说明只统计开启DAS企业版实例的执行失败SQL次数。
查询治理趋势:查看所选时间范围内查询治理结果的变化趋势。
TOP数据:查看实例红榜和实例黑榜。
实例黑榜:查看数据库实例慢SQL执行次数。
实例红榜:查看数据库实例慢SQL执行次数变化量,负数表示慢SQL执行次数减少量(优化效果好),正数表示慢SQL执行次数增加量。
DAS推荐您重点关注推荐优化SQL的红黑榜。
待优化SQL:您可以设置筛选条件,过滤出需要治理的SQL语句。
说明支持通过DB名称、SQL关键字、规则标签和数据库用户名进行筛选,四者之间是逻辑与的关系。
多个DB名称之间使用英文逗号(,)分隔,逻辑关系为或。
多个SQL关键字之间使用空格分隔,逻辑关系为与。
多个数据库用户名之间使用英文逗号(,)分隔,逻辑关系为或。
规则标签支持多选,多个规则之间逻辑关系为或。
单击目标SQL样本操作列的建议,查看详细的治理建议。
单击目标SQL样本操作列的打标,对此SQL进行手动打标。标签的具体含义请参见支持手动打标的SQL标签。
您也可以勾选需要手动打标的SQL,进行批量打标。
单击目标SQL样本操作列的样本,查看此SQL的慢日志样本详情。
单击目标SQL样本操作列的趋势,查看此SQL的慢日志分析详情。详细的慢日志分析介绍及操作请参见慢日志。
您可以根据需要导出和分享待优化的SQL数据,具体操作请参见慢日志。
失败SQL:您可以设置筛选条件,过滤出需要查看的SQL语句。
说明只统计开启DAS企业版实例的失败SQL。
支持通过DB名称和SQL关键字进行筛选,两者是逻辑与的关系。
多个DB名称之间使用英文逗号(,)分隔,逻辑关系为或。
多个SQL关键字之间使用空格分隔,逻辑关系为与。
单击目标SQL样本操作列的样本,查看此SQL的样本详情。
调整慢SQL阈值
您可以前往PolarDB控制台的 页面中,通过设置long_query_time参数来调整慢SQL定义的阈值。
参数 | 说明 |
long_query_time | 将所有执行时间超过参数值的查询记录到慢查询日志中。 取值范围:0.03-31536000,默认值:1,单位秒。 |
常见问题
最佳实践
相关API
API | 说明 |
查看PolarDB MySQL版集群的慢日志统计信息。 | |
查看PolarDB MySQL版集群的慢日志明细。 | |
查看PolarDB MySQL版集群的SQL采集功能(例如审计日志、SQL洞察等)是否开启。 | |
开启或关闭PolarDB MySQL版集群的SQL采集功能(例如审计日志、SQL洞察等)。 |