发布时间:2019-04-12 作者:Admin5
基于百度DBA多年的运维经验,并结合用户的使用习惯,百度云推出RDS for MySQL的慢SQL统计分析功能,便于用户快速定位数据库的性能问题。
在使用云的过程中,哪些指标最重要,是安全、弹性,还是计算能力?
其实这些都很关键。除此之外,云最重要的就是数据库了。数据库的性能直接关系到系统执行的效率和稳定性,更与业务紧密相关。如果数据库出现性能问题,不仅会影响公司业务和口碑,还有可能会造成经济损失。
今天要说的是数据库中的慢SQL。慢SQL是影响数据库性能很重要的一个方面。对于海量数据而言,劣质SQL和优质SQL之间的速度差别甚至能达到上万倍。一般情况下,解决慢SQL对解决数据库性能问题会起到事半功倍的效果。
接下来,我们将从产品功能(包括报表功能、实时诊断功能)和应用案例这两个方面来解读慢SQL统计分析功能有多强大,希望能为您的数据库全面提升性能。
功能一:查看三个月内历史情况
首先隆重介绍的是,该产品可支持查看最近3个月(截至当天零点)按天粒度统计的慢SQL。
具体操作是
只要点击图中的慢SQL圆点,就能展示当天经过优化分析模块处理的“慢SQL统计”信息。用户可对执行次数较多或耗时较长的Top N慢SQL进行优化,也可以通过“下载明细”获取对应的完整慢SQL。
这样做的目的是方便用户了解每天的慢SQL变化趋势,也可对历史慢SQL进行分析和优化,数据一目了然了吧。
功能二:可实时诊断
除了能查询三个月的历史慢SQL情况之外,本产品还能够通过慢SQL实时诊断查看当天零点至当前时间点,按分钟粒度统计的慢SQL。
具体操作是
用户可通过点击图上的每个柱图,展示该5分钟内经过优化分析模块处理的“慢SQL统计”信息。同时,用户还可对执行次数较多或耗时较长的Top N慢SQL进行优化,也可切换到“慢SQL明细”查看对应的完整慢SQL。
此功能是为了方便用户对当天的慢SQL进行实时分析,真正实现了今日事今日毕,快速定位数据库的性能问题。
用案例说明实时诊断定位有多快
接下来,我们通过具体案例,来解析慢SQL快速分析定位的强大功能。
在这个案例中,用户反馈在页面点击“查询”,过了一段时间页面报响应超时,如何分析定位此次查询的响应超时?
首先,该用户要定位当天的性能问题,故可使用“慢SQL实时诊断”功能。如下图所示:
其次,我们从“慢SQL统计”信息可看到,用户请求的这条SQL在数据库中执行了194.77秒,而业务要求超过30秒即算超时,所以请求还没返回结果就报响应超时了。
第三,这条SQL的本意是统计20181217这一天每种商品的数量。全天一共也就几万条数据,MySQL在engine层却扫描了近2亿条,然后经过server层过滤,最终只有302条数据满足条件。也就是说,MySQL执行这条SQL,做了大量的无用功。至此原因基本就可以定位了。
最后,MySQL会给出优化建议(该功能会在后续推出):去掉create_time字段上的函数,放在“=”右侧进行判断,同时创建(goods_id,create_time)联合索引。该SQL可在秒级别返回结果。
文章最后总结:功能差异性在哪?
从以上功能和案例中不难看出,慢SQL分为报表功能和实施诊断功能,作用有所不同。
报表功能可查看最近3个月(截至当天零点)、按天粒度统计的慢SQL,适用于用户了解每天的慢SQL变化趋势,也可对历史慢SQL进行分析优化。
实时诊断可通过查看当天零点至当前时间点、按分钟粒度统计的慢SQL。适用于用户对当天的慢SQL进行实时分析,以快速定位数据库的性能问题。
慢SQL作为云计算数据库中最为重要的一部分,正在被越来越多企业重视。优质SQL与劣质SQL的差异性,一定程度上影响了一个企业使用云的效率。百度云凭借着多年技术的积累,推出RDSfor MySQL帮助企业统计分析,快速定位数据库的性能问题,就是希望不断用新技术帮助企业提升业务能力,最大程度发挥云的效果。
RDS 慢MySQL统计分析功能已经上线,按照如下操作步骤即刻体验吧!