当前位置:网站首页>一条慢SQL拖死整个系统
一条慢SQL拖死整个系统
2022-07-07 02:19:00 【你的小伙伴啊】
1.自身案例
前几天监控探针突然告警,手动调用生产接口发现特别慢,平时A服务中几百毫秒就能响应的接口变成了3-5秒,慢的时候十几秒,有时候还直接超时。
首先查看相关服务,发现A服务cpu和内存都正常,服务日志也正常在输出,排除了服务问题,我一度认为是网络有波动,没有找到原因,直接重启服务,问题没有得到解。
直到后来有人说数据库是否有问题,然后查看数据库,果然发现一堆update语句卡住了在等待执行,然后一看update 的where条件,这个字段没有索引,原因找到了,就是因为更新条件没有索引,导致update语句特别慢,这里的业务又是批量更新,一瞬间会有大量的更新语句进入到sql,导致数据库资源被大量消耗,从而影响了整个服务(这个update语句是B服务,即B服务的慢sql占用了大量的数据库资源,从而导致其他所有服务响应都变慢)。
检查到原因后就给对应的字段添加了索引,然后就变快了,服务逐渐恢复稳定。(注意这里直接加索引,同时又源源不断的有这个语句进入数据库的话我认为是有可能会导致锁表的,由于这个业务特殊,只有少数人用,我直接电话通知他们停止使用,然后再添加索引)
注意:这里慢sql是update语句,我本来想让DBA直接kill的,但是由于是update语句DBA也不敢kill,说只能做回滚操作,如果是select语句,则直接kill。
这里我还有一个思路就是,先停用该接口,防止大量的update语句继续进入数据库,然后再加索引,所以可以在系统中添加一个开关,配置这个接口是否开启,随时可以启停某个接口,当某个接口出现问题时,直接停掉,然后抓紧时间解决,再启用接口。
2.在网上找到的几个类似的案例,记录一下
1. 案例:一条慢SQL拖死整个系统
某天突然发现服务探测接口疯狂告警、同时数据库CPU消耗也告警,最后系统都无法访问;
起先以为服务出现问题,服务重启后现象依旧;
后检查数据库发现,大量的慢SQL正在阻塞等待执行:
查看哪些表被锁:show OPEN TABLES where In_use > 0;
查询正在执行的SQL,发现大量SQL执行阻塞了几百秒
select * from information_schema.processlist where db=‘ db_xxx ‘ and info is not null;
直接取出索引的进程ID,拼装成kill语句,取出来执行,干掉阻塞中的索引进程。
select concat(‘kill ‘, id,‘;‘) from information_schema.processlist where db=‘db_xxx ‘ and info is not null;
发现干掉一次之后,很快又出现大量的执行阻塞的SQL,而且90%以上都是某一条SQL。
干掉N次之后仍然不行,还是会出现。。。。。。
将该条执行的SQL扒出来,针对查询条件,创建了组合索引,SQL阻塞现象消失,
系统也恢复了正常。。。。。
边栏推荐
- What are the classic database questions in the interview?
- JVM 全面深入
- c面试 加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。
- Doctoral application | Professor Hong Liang, Academy of natural sciences, Shanghai Jiaotong University, enrolls doctoral students in deep learning
- How to keep accounts of expenses in life
- JWT 认证
- Abnova 免疫组化服务解决方案
- Symmetric binary tree [tree traversal]
- 如何解决数据库插入数据显示SQLSTATE[HY000]: General error: 1364 Field ‘xxxxx‘ doesn‘t have a default value错误
- How to solve sqlstate[hy000]: General error: 1364 field 'xxxxx' doesn't have a default value error
猜你喜欢
随机推荐
ICML 2022 | explore the best architecture and training method of language model
Redis(一)——初识Redis
JVM in-depth
String (explanation)
POI导出Excel:设置字体、颜色、行高自适应、列宽自适应、锁住单元格、合并单元格...
matlab / ENVI 主成分分析实现及结果分析
微信小程序隐藏video标签的进度条组件
CloudCompare-点对选取
MySQL的安装
Installing redis and windows extension method under win system
Force deduction 62 different paths (the number of all paths from the upper left to the lower right of the matrix) (dynamic planning)
Which foreign language periodicals are famous in geology?
【解决】Final app status- UNDEFINED, exitCode- 16
Kotlin之 Databinding 异常
[start from scratch] detailed process of deploying yolov5 in win10 system (CPU, no GPU)
UIC(组态UI工程)公版文件库新增7款行业素材
Cloudcompare point pair selection
Etcd database source code analysis -- starting from the start function of raftnode
Audio distortion analysis of DSP and DAC based on adau1452
360 Zhiyu released 7.0 new products to create an exclusive "unified digital workspace" for the party, government and army, and central and state-owned enterprises