SQL慢查询排查思路
前言
平时在工作中每天都会做巡检,将前一天所有超过500ms的慢SQL排查出来
查找原因,是否能进行优化。慢慢中,在形成了一套思路方法论。
- 我个人认为对于排查慢SQL还是有一定的帮助
 
(一)、是否是SQL语句本身导致的慢SQL
- SQL语句是否走了索引。此条可以用explain命令查看
 
- SQL语句是不是select的数据量非常非常的大。比如是一个长长的json串,在网络传输的过程中会非常的耗时
 

(二)、SQL慢查询是否是其他外在因素导致的
如果SQL语句本身没有问题,大概率就是偶尔出现,其他因素影响的。
慢SQL这段时间,请求量是否很大,MySQL是否能支撑住此刻的访问量
- 此刻时间,是否有定时任务在大量操作数据库,造成锁表等?
 是不是其他组执行了一条很长的操作,影响了你们的SQL
(三)、SQL慢查询是否只在一个机房出现
比如应用部署在了A, B两个机房。当时数据库在A机房。
此时A机房的应用请求数据库,明显会比B机房的应用,跨机房请求A机房的数据库要效果好。
- 此刻时间,是否只有跨机房才会出现慢SQL。同机房不会出现
 
(四)、SQL慢查询是否由于网络原因
比如应用到数据库并不是直连的,。应用 --> 中间件A --> 中间件B --> 数据库实例
应用到中间件A。此段网络是否正常,中间件A 到B是否正常,中间件B到数据数据库是否正常等等
- 可以用tcpdump抓包看看。是否出现了重传的现象,是否某一刻网络出现了问题等等
 
SQL慢查询排查思路的更多相关文章
- sql 经典查询50题 思路(一)
		
因为需要提高一下sql的查询能力,当然最快的方式就是做一些实际的题目了.选择了这个sql的50题,这次大概做了前10题左右,把思路放上来,也是一个总结. 具体题目见: https://zhuanlan ...
 - 编写sql查询语句思路
		
编写查询语句思路/* 1.首先确定最终输出结果的列,包括几个方面:A.首先这些列来自于一个 表.还是多个表,如果是多个表则可能用到多表查询的(等值连接.不等值 连接.外连接.自连接):B.这些列是直接 ...
 - Mysql 高负载排查思路
		
Mysql 高负载排查思路 发现问题 top命令 查看服务器负载,发现 mysql竟然百分之两百的cpu,引起Mysql 负载这么高的原因,估计是索引问题和某些变态SQL语句. 排查思路 1. 确定高 ...
 - MySql CPU彪高到百分之1000的排查思路
		
You need to enable JavaScript to run this app. 原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等情况,可查看当前链接:https:// ...
 - Oracle数据库丢失表排查思路
		
Oracle数据库丢失表排查思路 说明:由于系统采用ID取模分表法进行Oracle数据存储,某日发现Oracle数据库中缺少对应的几张业务数据表,遂进行相关问题查询,简单记录一下排查思路: 由于我们代 ...
 - 技术分享 | Update更新慢、死锁等问题的排查思路分享
		
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 一.简介 在开始排错之前我们需要知道 Update 在 MySQL 中的生命周期 ...
 - 一次SQL慢查询的优化处理
		
背景 在开发完成,数据验证的过程中,需要对两个非常大的表进行query,运行了十几分钟都跑不完.如下: select * from big_a a, big_b b where a.some_id = ...
 - SQL——嵌套查询与子查询
		
前言 sql的嵌套查询可以说是sql语句中比较复杂的一部分,但是掌握好了的话就可以提高查询效率.下面将介绍带in的子查询.带比较运算符的子查询.带any/all的子查询.带exists的子查询以及基于 ...
 - mysql 查询优化 ~ 多表查询改写思路
		
一 简介:在之前我们从基础可知,现在咱们聊一下改写的几种思路二 分类: 1 left join 2 inner join 3 right join三 具体改写思路:思路1 本身不包含子查询,将多 ...
 
随机推荐
- JSP三大指令是什么?
			
JSP页面中的指令JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言等.语法规则:<%@ 指令名 属性=值 属性=值 ... %>指令可以有很多个属性,它们以键值对的形 ...
 - jquery给动态生成的元素绑定事件,on函数
			
首先先解释一下什么是动态生成的元素:动态生成的元素即我们用jquery的内部插入函数append()所生成的html代码.相对的也有静态生成的元素:即直接编写在页面的html代码. 下面通过例子来讲解 ...
 - python学习笔记02-简单游戏
			
一拖又过去快一个月了,哭聊.. 惰性千万不要有.. 今天简单接触一下条件语句 一个简单的文字游戏 1 print('----第一个文字游戏----') 2 temp = input('猜一下现在心里想 ...
 - Linux分区,格式化概念理解
			
一.分区概念: 逻辑上分成不同的存储空间. 分区类型: 主分区:最多只能有4个 扩展分区:最多只能有1个. 主分区加扩展分区最多有4个. 布恩那个写入数据,只能包含逻辑分区 逻辑分区: 主分区为什么只 ...
 - Drools规则引擎实践直白总结
			
目录 1. 创建Drools环境(引入Drools相关依赖包.现在都流行spring boot,故最简单有效的依赖才是最好的,kie-spring内部自行依赖了drools相关核心的依赖包) 2. 了 ...
 - 20201123 《python程序设计》实验四报告
			
20201123 2020-2021-2 <python程序设计>实验三报告 课程:<Python程序设计>班级:2011姓名:晏鹏捷学号:20201123实验教师:王志强实验 ...
 - CRM系统选型时的参考哪些方面
			
企业不论在制定营销策略或是在进行CRM系统选型时,首先都是要了解自身的需求.每一家企业的情况和需求都有很大差异,CRM系统的功能也都各有偏重.有些CRM偏重销售管理.有些注重于营销自动化.有些则侧重于 ...
 - Blazor 组件入门指南
			
翻译自 Waqas Anwar 2021年3月19日的文章 <A Beginner's Guide to Blazor Components> [1] Blazor 应用程序是组件的组合, ...
 - NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用
			
业精于勤,荒于嬉:行成于思,毁于随. 我们可以结合相关的IDE做一个简单的增删改查了,实现MongoDB在项目中的初步应用. 前提是安装了MongoDB服务和MongoDB可视化工具,没有安装的可以点 ...
 - UI自动化学习笔记- UnitTest单元测试框架详解
			
一.UnitTest基本使用 1. UnitTest框架 1.1 什么是框架 说明: 框架英文单词frame 为解决一类事情的功能集合 1.2什么是UnitTest框架 概念:UnitTest是pyt ...