当前位置:网站首页>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 to install swoole under window
Basic introduction of JWT
健身房如何提高竞争力?
Leetcode T1165: 日志分析
Use of completable future
Complete process of MySQL SQL
学术报告系列(六) - Autonomous Driving on the journey to full autonomy
7天零基础能考证HCIA吗?华为认证系统学习路线分享
Matlab tips (30) nonlinear fitting lsqcurefit
Config distributed configuration center
随机推荐
CompletableFuture使用详解
DB2获取表信息异常:Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][t4][1065][12306][4.25.13]
如何给目标机器人建模并仿真【数学/控制意义】
二十岁的我4面拿到字节跳动offer,至今不敢相信
Sqlserver multithreaded query problem
请教一下,监听pgsql ,怎样可以监听多个schema和table
MOS tube parameters μ A method of Cox
MYSQL binlog相关命令
工具类:对象转map 驼峰转下划线 下划线转驼峰
场馆怎么做体育培训?
JDBC database connection pool usage problem
Prompt for channel security on the super-v / device defender side when installing vmmare
【mysqld】Can't create/write to file
带你刷(牛客网)C语言百题(第一天)
常用函数detect_image/predict
AVL树的实现
7天零基础能考证HCIA吗?华为认证系统学习路线分享
Cloudcompare point pair selection
from . onnxruntime_ pybind11_ State Import * noqa ddddocr operation error
从零到一,教你搭建「CLIP 以文搜图」搜索服务(二):5 分钟实现原型