当前位置: 首页 > news >正文

《MYSQL45讲》kill不掉的线程

kill query + 线程id :终止这个线程正在执行的语句

kill connection + 线程id :关闭这个线程的连接,也会先停止这个线程正在执行的语句。这个connection可以缺省。

本文讨论的情况是:使用了kill命令,却没有断开连接,show processlist命令执行结果中,被kill的线程显示killed,这个killed是什么意思?以及一些常见的命令误解

1.收到kill query命令后,线程会做什么?

1.MYSQL中有个处理的kill命令的线程,处理kill命令的线程首先会设置该线程的状态为KILL_QUERY

2.给该线程发送一个“你被kill了”的信号

一个语句的执行过程中有多处埋点,执行到埋点处就会判断自己的线程状态。

如果线程在等待某个资源,那这个等待必须是可以唤醒的,否则就无法到达埋点处。

执行kill query 线程id命令,处理kill命令的线程首先会设置该线程的状态为KILL_QUERY,然后给该线程发送一个信号,该线程收到信号后知道自己被kill了,如果正在锁等待,就停止等待。去处理这个KILL_QUERY状态。 如果不发信号,该线程就仍然在锁等待,不知道自己被kill了。

2.收到kill connection命令后,会发生什么?

1.将被kill线程的状态设置为Kill_Connection

2.关闭被kill线程的网络连接

3.由于最大并发线程数不够导致的新线程等待并且kill不掉

当线程数已经达到最大并发线程数(innodb_thread_concurrency),此时一个新的查询请求想进来,需要等待有空闲线程,所以会每隔10ms尝试进入一次,并没有去判断线程的状态,所以此时kill query这个线程是没用的,而kill connection是可以的,直接关闭网络连接,但是一查,该线程仍然在等待中,不过状态是KILLED,因为

如果一个线程的状态是KILL_CONNECTION,就会把Command列显示成Killed。

为什么这样设计,因为断开连接只是将客户端和服务端连接断开了,而服务端的线程还是存在的。

那么该线程什么时候才能停止呢?

答案是要等到该线程能够进入innodb时,才会判断出自己的状态是了KILL_QUERY或者KILL_CONNECTION,此时才会进入终止线程的逻辑。

4.由于耗时长导致的一段时间内线程kill不掉

情况1:大事务,被kill时要将前面的更改都回滚,耗时长。

情况2:大查询回滚。

情况3:DDL命令执行到最后时被kill。

关于客户端的3个误解

1.在一个查询语句长时间阻塞时,客户端直接执行ctrl+c可以终止这个线程吗?

是不可以的,执行ctrl+c时,是启动另一个线程向服务端发送kill query命令,而MYSQL是停等协议,也就是要等到客户端的操作只能影响你客户端的线程,你ctrl+c只是客户端线程终止,只是你客户端退出了,服务端的线程仍然在运行。

2.数据库的表特别多,客户端连接就会很慢

客户端连接服务端需要执行的步骤是TCP握手,用户账号密码校验,获取权限。

可以看出来与表的数量没有关系。

表越多连接越速度越慢的原因是

客户端在连接成功后,需要将“每个库有哪些表”存本地缓存,用于名称补全的。

使用-A可以取消掉这个操作。

3.-quick命令不会让服务端变快

MYSQL客户端发送请求后,接收服务端返回结果的方式有两种:

1.在本地开个缓存,先把结果存起来。

2.不缓存,读一个处理一个

默认是第一个,而使用-quick就算第2个设置。

如果不缓存,本地如果处理慢了,就会导致服务端的结果被阻塞(因为停等协议),就导致服务端变慢了。

相关文章:

《MYSQL45讲》kill不掉的线程

kill query 线程id :终止这个线程正在执行的语句 kill connection 线程id :关闭这个线程的连接,也会先停止这个线程正在执行的语句。这个connection可以缺省。 本文讨论的情况是:使用了kill命令,却没有断开连接,show processli…...

单体架构 IM 系统之 Server 节点状态化分析

基于 http 短轮询模式的单体架构的 IM 系统见下图,即客户端通过 http 周期性地轮询访问 server 实现消息的即时通讯,也就是我们前面提到的 “信箱模型”。“信箱模型” 虽然实现非常容易,但是消息的实时性不高。 我们在上一篇文章&#xff08…...

java xml 文本解析

示例文本 <Message><MessageName>time_request</MessageName><Timestamp>20220217165432906359</Timestamp><Body><EQPID>CMMAB01-DTP01</EQPID></Body> </Message>示例代码 import org.w3c.dom.Document; impo…...

Docker占用空间太大磁盘空间不足清理妙招

docker占用空间太大了&#xff0c;磁盘空间不足&#xff0c;清理3妙招 清除所有已停止的容器&#xff08;container&#xff09;、未被任何容器所使用的卷&#xff08;volume&#xff09;、未被任何容器所关联的网络&#xff08;network&#xff09;、所有悬空镜像&#xff08…...

编程之路,从0开始:字符函数和字符串函数

Hello大家好&#xff01;很高兴我们又见面了&#xff01; 给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 目录 1、字符分类函数 2、字符转换函数 3、字符串函数 1、 strcpy 2、 strcat 3、 strcmp 4、strlen(s) 5、strstr(s1, s2) 6、 strtok(s1, s2…...

化工防爆巡检机器人:在挑战中成长,为化工安全保驾护航

随着全球能源需求的不断攀升&#xff0c;化工行业的安全性与高效性愈发受到关注。化工设施规模巨大&#xff0c;而且其中多数存在高风险因素&#xff0c;像是易燃易爆化学物质、高温环境、有毒有害物质以及高压设备等。仅2023年&#xff0c;国内危化品事故就多达652起&#xff…...

音频采样数据格式

音频信号在模拟到数字转换时&#xff0c;会涉及到多个关键参数&#xff0c;如采样率、位深度、通道数等。下面是常见的音频采样数据格式及其相关概念&#xff1a; 1. 采样率 (Sample Rate) 采样率指的是每秒钟对音频信号进行采样的次数&#xff0c;单位为赫兹 (Hz)。常见的值…...

【pytorch】常用强化学习算法实现(持续更新)

持续更新常用的强化学习算法&#xff0c;采用单python文件实现&#xff0c;简单易读 2024.11.09 更新&#xff1a;PPO(GAE); SAC2024.11.12 更新&#xff1a;OptionCritic(PPOC) "PPO" import copy import time import torch import numpy as np import torch.nn as …...

DAY59||并查集理论基础 |寻找存在的路径

并查集理论基础 并查集主要有两个功能&#xff1a; 将两个元素添加到一个集合中。判断两个元素在不在同一个集合 代码模板 int n 1005; // n根据题目中节点数量而定&#xff0c;一般比节点数量大一点就好 vector<int> father vector<int> (n, 0); // C里的一…...

Mybatis执行自定义SQL并使用PageHelper进行分页

Mybatis执行自定义SQL并使用PageHelper进行分页 基于Mybatis&#xff0c;让程序可以执行动态传入的SQL&#xff0c;而不需要在xml或者Select语句中定义。 代码示例 pom.xml 依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId&g…...

OpenCV DNN

OpenCV DNN 和 PyTorch 都是常用的深度学习框架&#xff0c;但它们的定位、使用场景和功能有所不同。让我们来对比一下这两个工具&#xff1a; 1. 框架和功能 OpenCV DNN&#xff1a;OpenCV DNN 模块主要用于加载和运行已经训练好的深度学习模型&#xff0c;支持多种深度学习…...

什么时候需要复写hashcode()和compartTo方法

在Java编程中&#xff0c;复写&#xff08;重写&#xff09;hashCode()和compareTo()方法的需求通常与对象的比较逻辑和哈希集合的使用紧密相关。但请注意&#xff0c;您提到的compartTo可能是一个拼写错误&#xff0c;正确的方法名是compareTo()。以下是关于何时需要复写这两个…...

PostgreSQL 日志文件备份

随着信息安全的建设&#xff0c;在三级等保要求中&#xff0c;要求日志至少保留半年 180 天以上。那么 PostgreSQL 如何实现这一要求呢。 我们需要配置一个定时任务&#xff0c;定时的将数据库日志 log 下的文件按照生成的规则将超过一定时间的日志拷贝到其它的路径下&#xf…...

2023年MathorCup数学建模B题城市轨道交通列车时刻表优化问题解题全过程文档加程序

2023年第十三届MathorCup高校数学建模挑战赛 B题 城市轨道交通列车时刻表优化问题 原题再现&#xff1a; 列车时刻表优化问题是轨道交通领域行车组织方式的经典问题之一。列车时刻表规定了列车在每个车站的到达和出发&#xff08;或通过&#xff09;时刻&#xff0c;其在实际…...

数字农业产业链整体建设方案

1. 引言 数字农业产业链整体建设方案旨在通过数字化手段提升农业产业效率与质量&#xff0c;推动农业现代化进程。方案聚焦于资源数字化、产业数字化、全局可视化与决策智能化的实现&#xff0c;构建农业产业互联网平台&#xff0c;促进农业全流程、全产业链线上一体化发展。 …...

awk那些事儿:在awk中使用shell变量的两种方式

awk是Linux中一款非常好用的程序&#xff0c;可以逐行处理文件&#xff0c;并提供了强大的语法和函数&#xff0c;和grep、sed一起被称为“Linux三剑客”。 在使用awk处理文件时&#xff0c;有时会用到shell中定义的变量&#xff0c;由于在shell中变量的调用方式是通过$符号进…...

大数据面试题--kafka夺命连环问(后10问)

目录 16、kafka是如何做到高效读写&#xff1f; 17、Kafka集群中数据的存储是按照什么方式存储的&#xff1f; 18、kafka中是如何快速定位到一个offset的。 19、简述kafka中的数据清理策略。 20、消费者组和分区数之间的关系是怎样的&#xff1f; 21、kafka如何知道哪个消…...

智能量化交易的多样化策略与风险控制:中阳模型的应用与发展

随着金融市场的不断创新与发展&#xff0c;智能量化交易正逐渐成为金融投资的重要手段。中阳智能量化交易模型通过技术优势、策略优化与实时风险控制等多方面结合&#xff0c;为投资者提供了强有力的工具支持。本文将对中阳量化模型的技术细节、多策略组合与市场适应性进行深入…...

小皮PHP连接数据库提示could not find driver

最近遇到一个奇怪的问题&#xff0c;我的小皮上安装的8.0.2版本的php连接数据库正常。下载使用8.2.9时&#xff0c;没有php.ini,把php-development.ini改成 php.ini后&#xff0c;就提示could not find driver。 网上查了说把php.ini里的这几个配置打开&#xff0c;我也打开了&…...

2024.11.13(一维数组相关)

思维导图 1> 提示并输入一个字符串&#xff0c;统计该字符串中大写字母、小写字母、数字字符、空格字符的个数并输出 2> 提示并输入一个字符串&#xff0c;将该字符串中的所有字母挑选到一个新数组中&#xff0c;将所有的数字字符挑选到另一个新数组中。并且将数字字符对…...

收藏!小白程序员必看:搞定RAG知识库,解锁大模型核心技能!

文章强调知识库是RAG系统的核心&#xff0c;其质量直接影响智能问答效果。构建知识库并非简单处理数据&#xff0c;而是涉及多数据源整合、复杂格式处理、数据更新与版本管理、文档召回优化及系统架构设计等关键环节。作者指出&#xff0c;随着数据量增长&#xff0c;完善的知识…...

AI导演系统:编排角色扮演,让多智能体协作效率飙升10倍

&#x1f9d1;‍&#x1f4bb; 博主介绍 & 诚邀关注 作者&#xff1a;专注于 Java、Python、前端开发的技术博主 | 全网粉丝 30 万 在校期间协助导师完成毕业设计课题分类、论文格式初审及代码整理工作&#xff1b;工作后持续分享毕设思路&#xff0c;助力毕业生顺利完成…...

免费文档下载终极方案:如何优雅获取百度文库等30+平台资源

免费文档下载终极方案&#xff1a;如何优雅获取百度文库等30平台资源 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为…...

AI生成镜头如何通过DIT审核?——Netflix《The Last Frame》技术白皮书首度公开(附VFX合规性检查清单PDF)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;AI视频生成在电影制作中的应用 AI视频生成技术正深刻重构电影工业的工作流&#xff0c;从前期预演到后期特效&#xff0c;再到个性化内容分发&#xff0c;其渗透已覆盖创作全生命周期。传统依赖高成本实拍与手…...

app应用接入广告的完整流程和方法:从零搭建可持续变现体系

随着移动互联网进入存量竞争阶段&#xff0c;用户流量增长趋于饱和&#xff0c;单纯依靠用户新增实现产品增值的模式已然失效。对于绝大多数免费工具、社交、资讯、游戏类 APP 而言&#xff0c;合规、稳定、可持续的广告变现&#xff0c;已经成为补齐产品商业闭环、维持产品长期…...

Cursor Pro激活工具深度解析:机器ID重置与多账户管理的技术实现

Cursor Pro激活工具深度解析&#xff1a;机器ID重置与多账户管理的技术实现 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached…...

SQL 排序分页精讲!ORDER BY+LIMIT 全套用法,报表分页

前言学会了条件查询、模糊查询之后&#xff0c;日常业务还有两个刚需场景&#xff1a;查出来的数据杂乱无章&#xff0c;想按年龄、时间、金额从小到大 / 从大到小排序&#xff1b;数据有成千上万条&#xff0c;一次性加载全部卡死&#xff0c;需要分页展示&#xff0c;一页只展…...

NotebookLM效应量计算合规性危机:FDA/EMA/NMPA最新AI辅助研究指南对效应量报告的强制性要求(附自查清单V2.3)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM效应量计算合规性危机的定义与背景 NotebookLM 效应量计算合规性危机&#xff0c;是指当研究者在使用 Google NotebookLM&#xff08;一款基于 LLM 的文档理解与推理工具&#xff09;辅助开展…...

Generative AI落地四层架构与企业级避坑指南

1. 这不是“AI画画”或“AI写文案”——它是一场底层认知范式的迁移Generative AI&#xff0c;这个词现在几乎天天刷屏&#xff0c;但很多人点开一篇介绍&#xff0c;看到的还是“用MidJourney生成海报”“让ChatGPT写周报”这类表层操作。这就像当年第一次听说“互联网”&…...

从零开始在Taotoken平台创建管理密钥并获取调用示例代码

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从零开始在Taotoken平台创建管理密钥并获取调用示例代码 1. 开始前的准备 如果你刚开始接触大模型API&#xff0c;可能会觉得配置…...