慢查询数过高

最后更新时间:2021-08-04 15:59:04

    现象描述

    慢查询现象出现的时候,一般伴随着多个监控指标同时飙升,如 CPU 使用率、慢查询数量。

    可能原因

    通常情况下是 SQL 语句的执行效率不够高,导致大量的请求堆积在云数据库 MySQL 中,常见原因有两个:

    • 原因1:SQL 语句没有利用索引或者没有用较佳的索引。
    • 原因2:QPS 压力超过当前实例的承载上限。

    解决思路

    针对两个可能的原因,分别有不同的解决思路:

    • 解决思路1:优化 SQL 语句,提升 SQL 语句的执行效率。详情请参见 措施1
    • 解决思路2:提升云数据库 MySQL 的配置。详情请参见 措施2

    处理步骤

    措施1:优化 SQL 语句

    可以直接用数据库智能管家 DBbrain 来进行慢查询优化。DBbrain 会分析 SQL 语句并给出加索引的建议。

    1. 登录 DBbrain 控制台,在左侧导航选择【诊断优化】,在上方选择对应数据库,然后选择【慢 SQL 分析】页。
    2. 单击(选择单一时间段)或拉选(选择多个时间段)“SQL 统计”图表的慢查询(柱形图),下方会显示聚合 SQL 模板以及执行信息(包括执行次数、总耗时执行时间、扫描行数、返回行数等)。
    3. 单击某条聚合的 SQL 模板行,右侧边会弹出 SQL 的具体分析和统计数据,可查看对应索引建议。

    措施2:提升云数据库 MySQL 配置

    查看各规格对应的 QPS 官方压测数据,与当前实例的 QPS 数据进行比较,调整对应的 MySQL CPU 和内存规格