腾讯云数据库MySQL慢日志最佳实践

SQL报表:历史慢SQL趋势分析,对系统进行整体的性能优化
SQL实时诊断:实时慢SQL诊断分析,快速定位系统正在进行的性能问题

操作步骤

1.     登录腾讯云数据库 管理控制台
2.     在左侧导航栏找到“产品服务”-“数据库”-“腾讯云数据库”
3.     在页面左上角,选择实例所在地域
4.     找到目标实例,单击实例ID
5.     在实例ID下面的导航栏中单击“日志管理”
6.     在“日志管理”页面可看到“慢SQL报表”和“慢SQL实时诊断”

功能介绍

“慢SQL报表”和“慢SQL实时诊断”,这两个功能均按实例维度展示,且主实例和只读实例分别展示。

SQL报表

“慢SQL报表”,展示的是当天零点之前,按天粒度统计的慢SQL。可选“近一周”或“近一月”,时间窗口最长可选择最近3个月,默认显示“近一周”。
趋势图:横轴为天粒度的时间,纵轴为慢SQL个数。

当点击每天对应的慢SQL圆点时,默认显示当天的“慢SQL统计”信息,也可以“下载明细”来获取当天的慢SQL明细。
其中,“慢SQL统计”,按执行次数倒叙排序;“下载明细”,按执行时间排序。

SQL实时诊断

“慢SQL实时诊断”,展示的是当天零点之后,按分钟粒度统计的慢SQL。为了展示效果,时间窗口最长可选择3个小时,默认为最近3小时。
趋势图:横轴为分钟粒度的时间,左侧纵轴为慢SQL个数,右侧纵轴为CPU使用率。其中,CPU使用率为曲线,慢SQL个数为5分钟一个的柱图。
当点击慢SQL柱图时,下方默认显示这5分钟内的“慢SQL统计”,也可以切换查看“慢SQL明细”。分别点击“慢SQL统计”的SQL模板和“慢SQL明细”的SQL语句,查看完整的SQL。
其中,“慢SQL统计”,按执行次数倒叙排序;“慢SQL明细”,按执行时间排序。

最佳实践

举例:当前系统响应比较慢,如何利用慢SQL功能进行定位?
1.     系统响应慢是进行时,需要用“慢SQL实时诊断”功能进行分析
2.     慢SQL统计信息里,排在Top的SQL需要重点关注。一般情况下,SQL不会无故变慢,需要根据执行次数、平均/最大执行时间、平均/最大返回行数、平均/最大扫描行数进行分析,常见情况:
SQL扫描行数比返回行数多得多:很可能是SQL没有合理使用索引导致。
SQL执行次数比较多,而扫描行数和返回行数都比较少:一般是并发太大导致SQL堆积,而使整个系统响应变慢。
SQL扫描行数和返回行数都比较多:一般SQL本身没有太大优化空间,需要业务层面进行优化。
业务流量太大导致系统响应变慢:写流量比较大,可考虑腾讯云 腾讯云数据库 DRDS ,利用DRDS的分片扩展特性,提升整个集群的写能力和存储容量;读流量比较大,可考虑腾讯云只读实例和代理号实例,利用代理实例的读写分离和负载均衡特性,分摊主库的读流量压力。另外,客户也可在BCM设置慢查询和系统资源方面的监控报警,当感知到系统存在性能压力时,可以通过“慢SQL实时诊断”及时分析。
3.     可以从慢SQL明细中查看具体SQL
 

标签