首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mysql中的锁表语句查看方法汇总(持续更新)

Mysql中的锁表语句查看方法汇总(持续更新)

原创
作者头像
疯狂的KK
发布2023-04-10 15:40:57
发布2023-04-10 15:40:57
2.2K00
代码可运行
举报
文章被收录于专栏:Java项目实战Java项目实战
运行总次数:0
代码可运行

title: mysql中的锁表语句查看方法汇总

date: 2022-04-28 16:48:51

tags: MySQL

categories: MySQL

toc: true

sidebar: true


代码语言:java
复制
mysql> show status like 'Table%';

+----------------------------+----------+

| Variable_name        | Value |

+----------------------------+----------+

| Table_locks_immediate | 105         |

| Table_locks_waited   | 3           |

+----------------------------+----------+

Table_locks_immediate 26839653

Table_locks_waited 0

Table_open_cache_hits 3

Table_open_cache_misses 2

Table_open_cache_overflows 2

Table_locks_immediate 指的是能够立即获得表级锁的次数

Table_locks_waited 指的是不能立即获取表级锁而需要等待的次数

Table_open_cache_hits 表缓存被命中的次数

Table_open_cache_misses 表缓存未被命中的次数

Table_open_cache_overflows 就是上面说的淘汰的instance(table cache)的数量

查看正在被锁定的的表

代码语言:SQL
复制
show OPEN TABLES where In_use > 0;

怎么查找mysql中的锁表语句

代码语言:SQL
复制
show processlist;
与select * from information_schema.processlist效果相同

SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。如果有线程在update或者insert 某个表,此时进程的status为updating 或者 sending data。

show processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS 权限

-- 查看那些表锁到了

代码语言:SQL
复制
show OPEN TABLES where In_use > 0;

-- 查看进程号

代码语言:SQL
复制
show processlist;

--删除进程

代码语言:SQL
复制
 kill 1085850; 
代码语言:javascript
代码运行次数:0
运行
复制
select id, db, user, host, command, time, state, info
from information_schema.processlist
where command != 'Sleep'
order by time desc 

其次查看CAT,但是CAT中除了Heartbeat报表GC异常以外,只有一条一分钟的SQL,并没有其他超时SQL

然后查看Grafana可以看到飙升时间在7点18分

在这个时间段查询PMM

没有异常,但是在其他服务中查询到有长达10分钟SQL未返回。

运行show full processlist命令查看是否有线程递增的情况

查询发现每一秒都有一个SQL在查询,经过代码分析,是某个接口前端轮询调用每秒都在进行查询导致的,没想到一个查询频率超高的SQL能导致CPU超高

代码语言:javascript
代码运行次数:0
运行
复制
{% raw %}
<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
<iframe src="//player.bilibili.com/player.html?aid=90978812&cid=155358422&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position: absolute; width: 100%; height: 100%; Left: 0; top: 0;" ></iframe></div>
{% endraw %}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档