动手点关注 干货不迷路 👆
项目概览
背景
慢 SQL 即执行时间超过 long_query_time 设定阈值的 SQL 语句,可通过 select @@long_query_time 查看数据库具体的慢查询阈值。另外慢 SQL 不仅仅包括 select 语句,也包括 delete,insert 等 DML 语句。
慢查询 SQL 的危害包括:
性能: 慢 SQL 的执行时间过长,则会导致用户的等待时间过长,直接影响用户体验;
稳定性: 当 db 出现慢查询,一旦有其他的 DDL 操作,可能会造成整个数据库的等待;另一方面,慢 SQL 会拖垮数据库,导致正常执行的 SQL 也会变成慢 SQL。在字节的线上事故管理平台搜索慢 SQL 关键字可以看到很多由于慢 SQL 导致的事故,危害性较大。
成果
发布慢 SQL 月报,整理最佳实践,头部泳道推动改进等取得了慢 SQL 数下降了近 50%,慢 SQL 周运行次数下降了一个数量级的成效;
慢 SQL 配置&告警订阅持续配置率从 18% 提升到 70% 左右,持续优化中。

名词解释
RDS:Relational Database Service,即字节关系型数据库服务。提供的关系数据库服务,使用的数据库产品主要以开源 MySQL 数据库为主。字节云关系型数据库服务(RDS)专注于为业务提供稳定可靠,弹性伸缩的在线数据库服务。
Mars:客增性能平台名称。
风神 Aeolus:字节自研敏捷 BI 平台,提供灵活易用的数据查询,高效美观的报表制作,与丰富多元的数据内容。
设计方案
1. 架构图

2. 核心功能
2.1 全面的慢 SQL 度量看板
以字节 RDS 平台数据库的慢 SQL 数据为依据,量化管理客增每日/每周/每月的慢 SQL 数量&运行次数。按照度量看板数据推动大家及时改进存量的慢 SQL,降低数据库质量风险。例如周维度的运行次数 & 慢 SQL 条数趋势图如下所示:


2.2 慢 SQL 治理体系
2.2.1 rds 慢 SQL 阈值配置自动化管理
字节关系型数据库平台-RDS 提供慢 SQL 阈值配置的功能:
当 SQL 执行时间超过该阈值后,会被