当前位置:网站首页>一条慢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阻塞现象消失,
系统也恢复了正常。。。。。
边栏推荐
- Learning notes | data Xiaobai uses dataease to make a large data screen
- The difference between string constants and string objects when allocating memory
- C language interview to write a function to find the first occurrence of substring m in string n.
- Niuke Xiaobai monthly race 52 E. sum logarithms in groups (two points & inclusion and exclusion)
- Performance comparison between Ceres solver and g2o
- c面试 加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。
- Abnova 膜蛋白脂蛋白体技术及类别展示
- Abnova循环肿瘤DNA丨全血分离,基因组DNA萃取分析
- Developers don't miss it! Oar hacker marathon phase III chain oar track registration opens
- 中英文说明书丨ProSci LAG-3 重组蛋白
猜你喜欢
港科大&MSRA新研究:关于图像到图像转换,Fine-tuning is all you need
二十岁的我4面拿到字节跳动offer,至今不敢相信
What are the classic database questions in the interview?
Haqi projection Black Horse posture, avec seulement six mois de forte pénétration du marché des projecteurs de 1000 yuans!
「运维有小邓」符合GDPR的合规要求
【OpenCV】形态学滤波(2):开运算、形态学梯度、顶帽、黑帽
哈趣投影黑馬之姿,僅用半年强勢突圍千元投影儀市場!
面试中有哪些经典的数据库问题?
A program lets you understand what static inner classes, local inner classes, and anonymous inner classes are
力扣62 不同路径(从矩阵左上到右下的所有路径数量) (动态规划)
随机推荐
Matlab / envi principal component analysis implementation and result analysis
【从零开始】win10系统部署Yolov5详细过程(CPU,无GPU)
[FPGA] EEPROM based on I2C
快速定量,Abbkine 蛋白质定量试剂盒BCA法来了!
How to keep accounts of expenses in life
Problems and precautions about using data pumps (expdp, impdp) to export and import large capacity tables in Oracle migration
c语言面试写一个函数在字符串N中查找第一次出现子串M的位置。
线性代数(一)
Ha Qu projection dark horse posture, only half a year to break through the 1000 yuan projector market!
Overview of FlexRay communication protocol
博士申请 | 上海交通大学自然科学研究院洪亮教授招收深度学习方向博士生
基本Dos命令
Redhat5 installing vmware tools under virtual machine
谷歌 Chrome 浏览器发布 103.0.5060.114 补丁修复 0-day 漏洞
[GNN] graphic gnn:a gender Introduction (including video)
ICML 2022 | 探索语言模型的最佳架构和训练方法
How to set up in touch designer 2022 to solve the problem that leap motion is not recognized?
精准时空行程流调系统—基于UWB超高精度定位系统
Common problems of caching in high concurrency scenarios
CloudCompare-点对选取