通过阿里云RDS排查解决MYSQL慢SQL--图文教学
通过自治服务和DMS解决数据库IOPS过高的问题,包括排查慢SQL、确定优化方向和使用无锁变更等步骤。
数据库IOPS居高不下,影响过多API业务信息
1. 跟进告警内容
【自治服务】-》【一键诊断】-》【当前资源使用率】-》【IOPS】
RDS-一键诊断
2. 排查慢SQL
【自治服务】-》【慢SQL】-》【慢SQL日志分析】
RDS-慢SQL日志
按照报警时间进行筛选,排查出TOP10占比sql内容;
a. 根据【执行时间】、【平均执行时间】、【最大执行时间】进行业务跟进
3. 确定优化方向
查询该SQL优化项,根据SQL执行计划调整索引内容
未走索引:
a. 根据索引执行计划,调整索引内容
b. 阿里云默认会有相关的优化建议,大多数可做参考
已走索引:
a. 判断索引执行级别,优化索引结构;如 新增联合索引
b. 判断表内容是否过大,是否需要清理表数据
3.DMS无锁变更
无锁数据变更
● 目标表为大表, 且更新语句不走索引, 避免长时间锁表
● 历史数据清理/备份大量数据/单条SQL事务太大,超过binlog限制
-
选择DMS中的无锁变更
-
将上述优化项,提交工单执行
-
执行完毕后,再次确认执行计划