MySQL慢查询分析与处理-第二篇

在第一篇介绍慢查询的文章中,提到了什么是慢查询,如何解读慢日志,如何使用pt-query-digest工具快速分析慢日志,本篇文章接着分享慢查询的常见原因和处理思路。

一、慢查询的常见原因

1、大事务

2、无主键表

3、未有效创建索引

4、统计信息未及时收集导致执行计划不准确

5、多个大表关联

6、大表DDL操作

7、操作系统负载高

8、内存或是磁盘故障导致os性能降低

二、慢查询的处理思路

步骤一:掌握慢SQL语句信息

1、了解该SQL是新上的还是以前就有

2、该SQL以前执行情况如何,现在执行耗时多少

3、该SQL是批量还是联机交易,能容忍的耗时是多少

4、该SQL单次提交是否有限制行数,是哪种类型的SQL

5、该SQL所在事务是否还有其他SQL,其他SQL涉及行数是多少

步骤二:分析慢SQL执行计划

通过explain语句,分析执行计划,检查是否走了索引,对比扫描行数和返回行数。若走了索引,分析索引区分度。

步骤三:优化慢SQL

sql优化和索引优化可以参考前面的文章。

相关推荐
王中阳Go7 分钟前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
cnskylee32 分钟前
【MySQL】麒麟V10 SP3系统安装MySQL-Commercial-8.0.46
数据库·mysql·adb
梦幻通灵33 分钟前
修改MySQL数据库递增序列【持续更新】
数据库·mysql
liminla!36 分钟前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
数据库·sql·算法
tongyiixiaohuang42 分钟前
供应商主数据同步实战:从易快报到金蝶云星空的单一策略落地
java·网络·数据库
大侠归来2 小时前
常用 MySQL 分库分表方案详解
数据库·mysql
kingx32 小时前
Windows Server 2008 应急加固实战:7 项入侵痕迹排查与修复
数据库·windows·提权·应急响应·加固
xiaogai_gai2 小时前
采购业务退款单同步实战:从钉钉审批流到金蝶云星空付款单
java·数据库·钉钉
AlickLbc3 小时前
DM-V8数据库证书过期处理过程记录
数据库
l1t3 小时前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb