当前位置:网站首页>A slow SQL drags the whole system down
A slow SQL drags the whole system down
2022-07-07 07:02:00 【Your little buddy】
1. Own case
A few days ago, the monitoring probe suddenly gave an alarm , Manually calling the production interface is found to be particularly slow , At ordinary times A The interface that can respond in hundreds of milliseconds in the service becomes 3-5 second , When it is slow, it takes more than ten seconds , Sometimes it just times out .
First, check the related services , Find out A service cpu And memory are normal , The service log is also output normally , Service problems are eliminated , I once thought it was the Internet that fluctuated , No reason found , Restart the service directly , The problem has not been solved .
Until later, someone said whether there was a problem with the database , Then view the database , Sure enough, I found a pile update The statement is stuck waiting for execution , Then take a look at update Of where Conditions , This field has no index , The reason is found , Because the update condition has no index , Lead to update Statements are particularly slow , The business here is batch update , In an instant, a large number of update statements will enter sql, This leads to a large consumption of database resources , Thus affecting the whole service ( This update The sentence is B service , namely B The service is slow sql It takes up a lot of database resources , This causes all other services to respond slower ).
After checking the reason, an index is added to the corresponding field , Then it gets faster , The service gradually recovers stability .( Note that the index is directly added here , At the same time, if this statement continues to enter the database, I think it may lead to locking the table , Because this business is special , Only a few people use , I call them directly to stop using , Then add the index )
Be careful : Slow here sql yes update sentence , I wanted to DBA direct kill Of , But because of update sentence DBA Dare not kill, Say you can only rollback , If it is select sentence , directly kill.
Here I have another idea is , Deactivate the interface first , Prevent a lot of update Statement continues to enter the database , Then add the index , So you can add a switch to the system , Configure whether this interface is enabled , You can start and stop an interface at any time , When something goes wrong with an interface , Just stop , Then seize the time to solve , Then enable the interface .
2. Several similar cases found on the Internet , Make a note of
1. Case study : One slow SQL Drag down the whole system
One day, I suddenly found a crazy alarm on the service detection interface 、 At the same time, the database CPU Consumption also alarm , Finally, the system cannot be accessed ;
At first, I thought there was a problem with the service , After the service is restarted, the phenomenon remains ;
After checking the database, we found , A lot of slow SQL Blocking waiting for execution :
See which tables are locked :show OPEN TABLES where In_use > 0;
Query in progress SQL, Find a lot SQL Execution blocked for hundreds of seconds
select * from information_schema.processlist where db=‘ db_xxx ‘ and info is not null;
The process of directly fetching the index ID, To assemble into kill sentence , Take it out and execute it , Kill the blocking indexing process .
select concat(‘kill ‘, id,‘;‘) from information_schema.processlist where db=‘db_xxx ‘ and info is not null;
Found that after killing once , Soon, a large number of execution blocking SQL, and 90% The above is one SQL.
kill N After that, I still can't , There will still be ......
Implement this article SQL Pick it out , For query criteria , Composite index created ,SQL The blockage disappears ,
The system has also returned to normal .....
Reference resources :MySQL Optimize 5 And CPU Consumption is too high ( One slow SQL Drag down the whole system )
边栏推荐
- How Oracle backs up indexes
- Navicat importing 15g data reports an error [2013 - lost connection to MySQL server during query] [1153: got a packet bigger]
- oracle如何备份索引
- Tool class: object to map hump to underline underline hump
- Abnova 免疫组化服务解决方案
- Complete process of MySQL SQL
- 栈题目:有效括号的嵌套深度
- Matlab tips (29) polynomial fitting plotfit
- 算法---比特位计数(Kotlin)
- Stack and queue-p79-10 [2014 unified examination real question]
猜你喜欢

How to do sports training in venues?

2018 Jiangsu Vocational College skills competition vocational group "information security management and evaluation" competition assignment

Matlab tips (29) polynomial fitting plotfit

Graduation design game mall

unity3d学习笔记

Use of completable future

Brand · consultation standardization

The latest trends of data asset management and data security at home and abroad

Please answer the questions about database data transfer

Abnova 免疫组化服务解决方案
随机推荐
Bus消息总线
7天零基础能考证HCIA吗?华为认证系统学习路线分享
中英文说明书丨ProSci LAG-3 重组蛋白
ip地址那点事
数据资产管理与数据安全国内外最新趋势
多个kubernetes集群如何实现共享同一个存储
一文带你了解静态路由的特点、目的及配置基本功能示例
健身房如何提高竞争力?
LC 面试题 02.07. 链表相交 & LC142. 环形链表II
Unable to debug screen program with serial port
大促过后,销量与流量兼具,是否真的高枕无忧?
Navicat importing 15g data reports an error [2013 - lost connection to MySQL server during query] [1153: got a packet bigger]
快速定量,Abbkine 蛋白质定量试剂盒BCA法来了!
unity3d学习笔记
FPGA课程:JESD204B的应用场景(干货分享)
剑指offer-高质量的代码
2018年江苏省职业院校技能大赛高职组“信息安全管理与评估”赛项任务书第二阶段答案
MySQL的主从复制原理
Jmeter 5.5版本发布说明
多学科融合