生产mysql遇到kill不掉的sql的解决方法

news/2024/10/17 10:38:55/

一、问题描述

今天上线,生产mysql有个2700万数据的大表lt_integral_detail_info,准备给这个表加字段、加索引;

执行加字段加索引的命令比较费时,结果这时有人对这个表执行了多个select count(*)操作,导致直接把Navicat会话挤掉了,CPU也飙上去了,其它的对这个数据库的增删改查也变的很慢,半天跑不出来。

赶紧联系数据库管理人员,把加字段、加索引的操作kill掉了,把卡死的select count(*)操作也标记kill了,但是半天没有kill掉。

如图:
在这里插入图片描述

可以看到卡了挺长时间了,也没有kill掉。

此时,如果对其它表进行操作,是没有问题的;但是如果再操作lt_integral_detail_info表,就又会卡死,其它的对这个数据库的增删改查也变的很慢。

二、网上的解决方法

1.网上发现了这样的一个文章:

https://cloud.tencent.com/developer/article/1857161?from=15425&areaSource=102001.9&traceId=OjyLyWs7caMy1jo-2hFIA

大概意思是,mysql执行kill操作时,是先打个标记,后续再真正kill;
mysql低版本有bug,是基于主键并行读操作造成的;
触发了这个bug,就会kill不掉sql语句。

2.解决方法,网上说,可以升级mysql到8.0.22

3.如果不能升级,就可以增加配置:

innodb_parallel_read_threads=1

然后重启MySQL解决。

三、个人的解决方法

1.正常情况下,kill一个sql语句是很快就会生效的;标记为kill几个小时都没有kill掉的情况很少见;
可以选择继续等待,看能否正常kill。(如上图,卡住了7个sql,2-3小时后发现少了一个,说明2-3个小时后还是可以正常kill掉一个的。)

2.由于生产环境不能轻易重启mysql,因此就临时建了另一个表,从备库把数据同步了过去,卡住的表就先放着不动了。(得尽快发完版,还不能影响正常业务)

三、总结

1.对大表执行增加字段、增加索引的sql语句时,就尽量不要再操作这张表了,防止sql卡死并且kill不掉。

2.如果有sql语句操作某张表、标记为kill后还是杀不掉,就尽量不要再操作这个表了,否则新的操作sql还会卡死、并且将导致对库中其它表的操作也变的很慢。(只能再标记为kill)

3.标记完kill后杀不掉,可以多等待一段时间(几个小时、一整晚),看看有没有什么变化,有可能可以自己恢复,慢慢就kill掉了。

4.如果允许,就把mysql升级到8.0.22

5.或者增加配置innodb_parallel_read_threads=1,然后重启mysql解决。


http://www.ppmy.cn/news/51185.html

相关文章

Android修改头像之拍照、从相册选择、裁剪

手写一个修改头像的需求,头像图片支持手机拍照裁剪和从相册选择图片裁剪; 实现效果: 本节主要内容: 1)头像修改对话框实现; 2)调用系统相机拍照; 3)自定义图片裁剪页…

信号量【Linux】

文章目录 1. POSIX信号量1.1 引入1.2 概念1.3 PV原语(原理)1.4 相关接口 2. 二进制信号量3. 基于环形队列的生产消费模式3.1 介绍3.2 为什么要使用环形队列3.3 环形队列的作用3.4 实现互斥和同步两个信号量框架生产和消费的逻辑完善环形队列1信号量完善环…

【打卡-Coggle竞赛学习2023年4月】图像检索与重复图像识别

#### 任务1:图像匹配与检索 图像相似度 图像相似度是用于度量两幅图像之间相似程度的指标。图像相似度可以基于像素级别的相似度或者基于特征匹配的相似度来计算。像素级别的相似度通常是基于两幅图像的像素值来计算的,包括均方误差、结构相似性指数&a…

JAVA Future类详解及Thread线程是如何运行Future类的

一、Future基本介绍 Future(java.util.concurrent Interface Future<V>)表示异步计算的结果。Future接口提供了检查计算是否完成、检查计算是否被取消、等待计算完成并获取计算结果等方法。 在并发编程中&#xff0c;我们经常用到非阻塞的模型&#xff0c;但继承thread类…

SpringBoot入门篇

SpringBoot入门 一、Maven项目二、HTTP协议2.1、协议概述2.2、请求协议2.3、响应协议2.3、协议解析 三、Web服务器 -TomCat3.1、Tomcat简介3.2、Tomcat使用3.3、内嵌Tomcat 四、请求响应4.1、请求4.1.1、postman4.1.2、简单参数4.1.3、实体参数4.1.4、数组集合参数4.1.5、日期参…

【FPGA-DSP】第九期:音频信号处理

从本文开始将记录一些简单的音频信号处理算法在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。 音频信号属于一维信号&#xff0c;一些基本概念如下&#xff1a; 采样频率&#xff1a;根据奈奎斯特采样定理&#xff0c;采样频率Fs应该不低于声…

Nmap学习简记

Nmap主机发现 nmap -sn CIDR 对该网络中的所有主机进行ip扫描&#xff0c;以此来发现网络主机存活。 Nmap主机发现结果输出 nmap -sn CIDR -oX test.xml 将扫描结果输出到test.xml文件中方便以后使用。 Nmap端口探测技巧 nmap -p80 DNS 对某个端口进行探测 nmap -p80,…

【工作总结】后端开发人员的坏习惯

文章目录 前言一、不遵循项目规范二、用复杂SQL语句来解决问题三、缺少全局把控思维&#xff0c;只关注某一块业务四、函数复杂冗长,逻辑混乱五、缺乏主动思考&#xff0c;拿来主义六、核心业务逻辑,缺少相关日志和注释七、修改代码&#xff0c;缺少必要测试八、需求没理清&…