MySQL 表锁问题

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;

批量查出来

selectCONCAT ('kill ', id, ';'),host,db,info
frominformation_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.hqwc.cn/news/517798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

比较 2 名无人机驾驶员:借助分析飞得更高

近年来,越来越多的政府和执法机构使用无人机从空中鸟瞰。为了高效执行任务,无人机必须能够快速机动到预定目标。快速机动使它们能够在复杂的环境中航行,并高效地完成任务。成为认证的无人机驾驶员的要求因国家/地区而异,但都要求您…

Ubuntu 24.04 抢先体验换国内源 清华源 阿里源 中科大源 163源

Update 240307:Ubuntu 24.04 LTS 进入功能冻结期 预计4月25日正式发布。 Ubuntu22.04换源 Ubuntu 24.04重要升级daily版本下载换源步骤 (阿里源)清华源中科大源网易163源 Ubuntu 24.04 LTS,代号 「Noble Numbat」,即将与我们见面! Canonica…

Git 版本控制

Git 版本控制 1. About Version Control (关于版本控制)1.1. Local Version Control Systems (本地版本控制系统)1.2. Centralized Version Control Systems (集中化的版本控制系统)1.3. Distributed Version Control Systems (分布式版本控制系统) 2. 换行符的处理3. keyboard…

用xshell7连接服务器,读取后台日志

有时候前端需要读取一些后台日志,比如,有时候接一些验证码啥的 或者有时候前后端不分离时,前端上线项目 先讲一下怎么用密码方式连接服务器 密码方式连接服务器 第一步,安装xshell,在新建会话中填写主机&#xff0…

时隔n年再度会看Vue,Git

时隔n年再度会看Vue,Git 曾经沧海难为水,除却巫山不是云。不知道这句话用在这里合不合适,好多东西在记忆中都淡化了。但是互联网确是有记忆的。研究以前项目的时候,翻看到gitee码云上托管的项目,就像是自己的孩子重新又回来了一样…

外汇天眼:固定汇率与浮动汇率是什么?两者各有什么优缺点?

浮动汇率 浮动汇率指的是一国货币兑换其他货币的价格,依照外汇市场的供需状况自由决定,并且不固定汇率的波动幅度。 1971年美国实行新经济政策,任由美元汇率自由浮动,到1973年,各国普遍实行浮动汇率制度。 也就是从那…

设计模式之——简单工厂模式

上图为简单工厂模式的架构图。 1,产品(Product) 将会对接口进行声明。 2,具体产品(Concrete Products)是产品接口的不同实现。 3,创建者(Concrete Creators)将会重写基…

分布式ID生成策略-雪花算法Snowflake

分布式ID生成策略-雪花算法Snowflake 一、其他分布式ID策略1.UUID2.数据库自增与优化2.1 优化1 - 共用id自增表2.2 优化2 - 分段获取id 3.Reids的incr和incrby 二、雪花算法Snowflake1.雪花算法的定义2.基础雪花算法源码解读3.并发1000测试4.如何设置机房和机器id4.雪花算法时钟…

蓝桥杯简单题,公司名称

#include <iostream> #include <cstring> #include <algorithm> using namespace std; bool lanqiao(string str,int len){ sort(str.begin(),str.end());//对str按照ascii排序if(str.find("Laainoq")str.npos) return false;//如果没有找到Laain…

UniSA: Unified Generative Framework for Sentiment Analysis

文章目录 UniSA&#xff1a;统一的情感分析生成框架文章信息研究目的研究内容研究方法1.总体架构图2.基准数据集SAEval3.Task-Specific Prompt4.Modal Mask Training5.Pre-training Tasks5.1Mask Context Modeling5.2Sentiment Polarity Prediction5.3Coarse-grained Label Con…

基于SpringBoot的CSGO赛事管理系统(程序+数据库+文档)

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一、研究背景…

Ultimaker Cura使用

参考视频&#xff1a;Cura学习视频 1 软件下载地址 Ultimaker官网- 专业便捷的3D打印品牌 2 软件设置 &#xff08;1&#xff09;中文设置&#xff1a; 偏好设置->language->简体中文->关掉界面&#xff0c;重启 &#xff08;2&#xff09;添加打印机 Custom F…