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优化和索引优化可以参考前面的文章。

相关推荐
GitLqr13 分钟前
Impeller 时代:Shader Jank 消失了,但渲染性能的战场也变了
flutter·面试·性能优化
码云数智-园园21 分钟前
Android 全方位性能优化合集
android·性能优化
MC皮蛋侠客38 分钟前
Redis 系列(六):过期、内存淘汰与内存优化——让 Redis 活得更久
数据库·redis·bootstrap
杜子不疼.1 小时前
模型效果不好时,我现在会先看数据集
数据库
夜雪一千1 小时前
MySQL的事务是什么?原理、ACID、隔离级别与实战详解
数据库·mysql
会编程的土豆1 小时前
从「锁」到「时间」:后端里几个容易混的概念
java·开发语言·数据库·goland
上下求索,莫负韶华1 小时前
笔记-数据库事务和java事务和切面
java·数据库·笔记
黄华SJ520it2 小时前
顶俏洗衣液模式制度开发介绍:S2B2C社交分销+多门店核销系统全解析
前端·数据库·小程序·零售·系统开发
大黄说说2 小时前
Android 本地存储深度对比:SharedPreferences、MMKV、Room 数据库怎么选?
android·数据库