MySQL 表锁问题

news2024/11/25 4:18:11

MySQL 表锁解决

查看哪些表被锁,字段 In_use 表示有多少线程在使用这张表,字段 name_locked 表示表格是否被锁,0 代表锁定状态

mysql> show OPEN TABLES where In_use > 0;
+-------------+-----------------------+--------+-------------+
| Database    | Table                 | In_use | Name_locked |
+-------------+-----------------------+--------+-------------+
| dsp_catalog | data_apply_statistics |      9 |           0 |
| dsp_catalog | data_apply_report     |      3 |           0 |
+-------------+-----------------------+--------+-------------+

定位到这两张表,存在问题
data_apply_statistic、data_apply_report

查找当前信息

SHOW FULL PROCESSLIST;    --full参数可以显示完整SQL信息

在这里插入图片描述

1、 这里首先定位 state 状态是 Waiting for table flush
2、找到 info 列 SQL 包含 data_apply_statistic、data_apply_report表的线程

kill + id
kill 4822226;

批量查出来

select
  CONCAT ('kill ', id, ';'),
  host,
  db,
  info
from
  information_schema.processlist
where user = 'root'
  and state = 'Sending data'
  or state = 'Waiting for table flush'
  and `TIME` > 1;

等待数秒,查看确认

mysql> show OPEN TABLES where In_use > 0;

好了,问题解决

此外还需要注意的 Waiting for table flush 和 MDL:meta data lock 也不可轻视,需要特别注意

  1. 出现 Waiting for table flush的原因
    https://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html
    flush tables 语句需要或者 alter table,rename table,repair table,analyze table,optimize table 等DDL语句 需要关闭table,然后重新打开table,
    而这些table可能会存在大的事务再执行,或者被锁住了,从而无法关闭 table,所以就出现了状态:Waiting for table flush
    也就是说:需要执行 flush tables 的线程,因为某些原因无法关闭表,无法完成 flush tables,所以就 waiting for table flush
  2. 解决方式
    出现 Waiting for table flush 时,我们一般需要找到那些表被lock住或那些慢查询导致 flush table 一直在等待而无法关闭该表。然后Kill掉对应的线程即可,但是如何精准定位是一个挑战,尤其是生产环境,你使用 show processlist 会看到大量的线程。让你眼花缭乱的,怎么一下子定位问题呢?
    对于慢查询引起的其它线程处于Waiting for table flush状态的情形:
    可以查看 show processlist 中 time 值很大的线程。然后甄别确认后 Kill 掉。有种规律就是这个线程的 time 列值必定比被阻塞的线程要高。这个就能过滤很多记录。
    03)注意
    避免 mysqldump 的 --singel-transaction 和 --master-data 选项一起使用,除非主从搭建的时候,最安全的方式是只使用 --single-transaction 选项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1493473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音视频学习笔记——ffmpeg解码流程

✊✊🌈大家好!本篇文章主要记录自己在进行音视频学习中,整理的部分ffmpeg解码相关的内容重点😇。 首先重新梳理了ffmpeg解码流程,重点学习avcodec_send_packet()、avcodec_receive_frame()在解码中的应用,以…

【QT】重载的信号槽/槽函数做lambda表达式

重载的信号槽 函数指针: int fun(int a,long b) int (*funp)(int, long) fun; 实现回调函数就需要函数指针 信号重载 派生类槽函数发送两个信号 派生类给父类发两个信号 void (SubWidget::*mysigsub)() &SubWidget::sigSub;connect(&subw,mysigsub,t…

网络编程:select、poll

.1、select完成TCP并发服务器 程序代码&#xff1a; #include <myhead.h> #define SER_IP "192.168.125.234" //服务端IP #define SER_PORT 8888 //服务端端口号int main(int argc, const char *argv[]) {//1.创建用于连接的套接字int sfds…

1-安装rabbitmq

rabbitmq官网&#xff1a; https://www.rabbitmq.com/docs/download 本机环境&#xff1a;mac&#xff0c;使用orbstack提供的docker 使用docker部署rabbitmq docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13-management 然后报错&#xf…

bun 单元测试

bun test Bun 附带了一个快速、内置、兼容 Jest 的测试运行程序。测试使用 Bun 运行时执行&#xff0c;并支持以下功能。 TypeScript 和 JSX生命周期 hooks快照测试UI 和 DOM 测试使用 --watch 的监视模式使用 --preload 预加载脚本 Bun 旨在与 Jest 兼容&#xff0c;但并非所…

SD-WAN: 灵活部署,助力云服务

随着Office 365、Salesforce、Webex和SAP等云托管应用程序的迅速发展&#xff0c;企业正加速将业务关键应用程序迁移到云端。这种转变需要为遍布各地的员工提供安全可靠的云服务网络连接。本文将介绍SD-WAN如何助力企业的云服务访问。 传统的网络架构&#xff0c;特别是基于MPL…

【AI视野·今日Robot 机器人论文速览 第八十二期】Tue, 5 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Tue, 5 Mar 2024 Totally 63 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;双臂机器人拧瓶盖, (from 伯克利) website: https://toruowo.github.io/bimanual-twist &#x1f4da;水下抓取器, (from …

总结:大模型技术栈---算法与原理

原文地址&#xff1a;大模型技术栈-算法与原理 1. tokenizer方法 word-level char-level subword-level BPE WordPiece UniLM SentencePiece ByteBPE2. position encoding 绝对位置编码 ROPE AliBi 相对位置编码 Transformer-XL T5/TUPE DeBERTa3. 注意力机制 Mamba,H3,Hyena…

Linux下下载安装JDK配置Java环境变量

Linux下下载安装JDK配置Java环境变量 1. 下载JDK 下载链接&#xff1a;(https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 2. 上传至服务器并解压 可通过shell工具进行上传&#xff0c;我这里是上传安装在/opt目录 解压jdk-17.0.10_linux-x64_b…

【外汇天眼】外汇交易策略:最容易获利的行情,原来是这一段!

不随便抄底抓顶 不能仅因为价格大跌而抄底&#xff0c;是对市场风险的尊重。 市场走势是有理由的&#xff0c;每轮下跌背后都有其深刻的基本面。 我在看书时印象深刻的是一位国外著名炒手谈到他的经历。 有一年咖啡丰收&#xff0c;价格跌得惨不忍睹&#xff0c;甚至到了一袋…

阿里二面,redis宕机了,如何快速恢复数据

背景 有个同学阿里二面&#xff0c;面试官问&#xff1a;redis宕机了&#xff0c;如何恢复数据&#xff1f; 这位同学当时一脸懵&#xff0c;不知道如何回答。 分析分析这个问题&#xff0c;redis宕机&#xff0c;要想恢复数据&#xff0c;首先redis的数据有没有做持久化&…

【AI视野·今日CV 计算机视觉论文速览 第302期】Tue, 5 Mar 2024

AI视野今日CS.CV 计算机视觉论文速览 Tue, 5 Mar 2024 Totally 177 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Brand Visibility in Packaging: A Deep Learning Approach for Logo Detection, Saliency-Map Prediction, and Logo Plac…

图论例题解析

1.图论基础概念 概念 &#xff08;注意连通非连通情况&#xff0c;1节点&#xff09; 无向图&#xff1a; 度是边的两倍&#xff08;没有入度和出度的概念&#xff09; 1.完全图&#xff1a; 假设一个图有n个节点&#xff0c;那么任意两个节点都有边则为完全图 2.连通图&…

计算机网络——24路由器组成

路由器组成 路由器的结构概况 高层面(非常简化的)通用路由器体系架构 路由&#xff1a;运行路由选择算法&#xff0f;协议 (RIP, OSPF, BGP) - 生成 路由表转发&#xff1a;从输入到输出链路交换数据报 - 根据路由表进行分组的转发 输入端口功能 分布式交换&#xff1a; 根…

【风格迁移】对比度保持连贯性损失 CCPL:解决图像局部失真、视频帧间的连贯性和闪烁

对比度保持连贯性损失 CCPL&#xff1a;解决图像局部失真、视频帧间的连贯性和闪烁 提出背景解法&#xff1a;对比度保持连贯性损失&#xff08;CCPL&#xff09; 局部一致性假设 对比学习机制 邻域调节策略 互信息最大化对比学习&#xff1a;在无需标签的情况下有效学习区分…

Yolov8改进交流

YOLO v8改进 YOLOv8的改进&#xff0c;我接触的主要分为网络改进和代码改进&#xff0c;网络改进就是以注意力、主干为主&#xff0c;代码改进就是类似于Iou&#xff0c;类别权重等修改。 以下是yolov8的原始模型。 # Ultralytics YOLO &#x1f680;, AGPL-3.0 license # YO…

防爆小型气象站

TH-FBCQX1(FB01)随着科技的进步和安全生产意识的提高&#xff0c;防爆小型气象站在危化品场所的应用越来越受到重视。这些气象站不仅能够实时监测和记录关键气象数据&#xff0c;还能够提供预警功能&#xff0c;确保危化品场所的安全运行。 一、防爆小型气象站的功能与特点 防爆…

STM32FreeRTOS消息队列(STM32Cube高效开发)

文章目录 一、队列&#xff08;一&#xff09;简介&#xff08;二&#xff09;FreeRTOS队列特点1、入队阻塞&#xff1a;队列满了&#xff0c;此时无法继续写入数据2、出队阻塞&#xff1a;队列为空&#xff0c;此时无法读出数据3、入队阻塞解除&#xff0c;有多个任务等待时&a…

史称GPT-4最强劲敌——Claude 3 大模型它来了【附体验教程】

Anthropic 的 Claude 3 Sonnet 模型现已在亚马逊云科技的 Amazon Bedrock 正式可用。 Amazon Bedrock 是目前 第一个 也是 唯一 一个提供 Claude 3 Sonnet 的托管服务 。 Claude 3 免费测试体验者福利&#x1f9e7;&#xff1a;https://mp.weixin.qq.com/s/hszLRa8B5zKsTDg2bmI…

missing_aware_prompts

MSA layers [1] 辅助信息 作者使用旧版pytorch_lightning&#xff0c;不建议复现 参考文献 [1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advance…