MySQL|查看事务加锁情况

文章目录

  • 使用information_schema数据库中的表获取锁信息
    • INNODB_TRX
    • INNODB_LOCKS
    • INNODB_LOCK_WAITS
  • 使用SHOW ENGINE INNODB STATUS获取信息
  • 补充

使用information_schema数据库中的表获取锁信息

在information_schema数据库中,有几个与事务和锁紧密相关的表

INNODB_TRX

INNODB_TRX表结构
在这里插入图片描述
该表存储了INNODB存储引擎当前正在执行的事务信息,包括事务id(如果没有为该事务分配唯一的事务id,则会输出该事务对应的内存结构的指针)、事务状态(比如事务是正在运行还是等待获取某个锁、事务正在执行的语句、事务是何时开启的)等等。
比如在一个会话中执行事务T1:
在这里插入图片描述

在另一个会话中查询INNODB_TRX表

select * from information_schema.INNODB_TRX;

“”“内容太多无法截图”“”
查询部分内容

select trx_id,trx_state,trx_isolation_level,trx_tables_locked,trx_rows_locked,trx_lock_structs from information_schema.INNODB_TRX;

在这里插入图片描述

  • trx_tables_locked:表示该事务目前加了多少个表级锁;
  • trx_rows_locked:表示该事务目前加了多少个行级锁;(不包括隐式锁)
  • trx_lock_structs:表示该事务生成了多少个内存中的锁结构

INNODB_LOCKS

该表记录了一些锁信息。

  • 如果一个事务想要获取某个锁但未获取到,则记录该锁信息
  • 如果一个事务获取到了某个锁,但是这个锁阻塞了别的事务,则记录该锁信息
    比如,在刚刚开启的事务T1中,给表中的记录加锁
    在这里插入图片描述
    查看INNODB_LOCKS表
    在这里插入图片描述
    开启第二个事务T2,执行加锁语句。会发现该语句被锁住了;
    在这里插入图片描述
    查询INNODB_LOCKS表
    在这里插入图片描述
    仅凭以上信息无法判断出,哪个事务因为哪个事务加锁成功而导致被阻塞。可以通过INNODB_LOCK_WAITS获得更多的信息。

INNODB_LOCK_WAITS

表明每个阻塞的事务因为获取不到哪个事务持有的锁而阻塞。
在这里插入图片描述

  • requesting_trx_id表示因为获取不到锁而被阻塞的事务的事务id
  • blocking_trx_id表示获取到别的事物需要的锁而导致其被阻塞的事务的事务id
    查询这两个表时都得到了一个“WARING”,查看该waring
    在这里插入图片描述
    原因是这两个表在目前的MySQL版本(5.7)中被标记为“已过时”,未来的版本可能会被删除。(在MySQL中已经被移除)

使用SHOW ENGINE INNODB STATUS获取信息

首先给表加上二级索引

在这里插入图片描述

新开启一个事务;执行以下语句

在这里插入图片描述

直接通过“show engine innodb status”查看情况,(内容太多只截取部分信息)

在这里插入图片描述

  • Trx id counter is 9997下一个待分配的事务ID
  • Purge done for trx’s n:o < 9995 undo n:o <0 一些关于purge的信息
  • History list length 0每个回滚段中都有一个history链表
    为了看出哪个事务对哪些记录加了哪些锁,将系统变量innodb_status_output_locks(这个系统变量是在MySQL5.6.16中引入的)设置为ON:
set global innodb_status_output_locks = ON;

在这里插入图片描述

补充

查看字符集

show variables like 'character%';
show variables like  'collation%'
# 查看数据库支持的字符集
show charset;
# 查看数据库的字符集
show create database db_name;
# 查看数据表的字符集
show create table tb_name;

修改字符集

# 修改库字符集
alter database db_name default charset name;
# 修改数据表字符集
alter table tb_name default charset name;
# 建库时指定
create database db_name default charset name;
# 建表时指定
create table tb_name () default charset name;

ps:修改库字符集后库里面的表的字符集不会随着库的字符集更改而更改
(如果在库里面创建表时不指定字符集,这个表的字符集默认是库的字符集)
在这里插入图片描述

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

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

相关文章

3个命令定位CPU飙高

top 指令找出消耗CPU最厉害的那个进程的pid top -H -p 进程pid 找出耗用CPU资源最多的线程pid printf ‘0x%x\n’ 线程pid 将线程pid转换为16进制 结合jstack 找出哪个代码有问题 jstack 进程pid | grep 16进制的线程pid -A 多少行日志 jstack 进程pid | grep 16进制的线程…

Source Insight_突出显示对选定字符的引用

1、突出显示对选定字符的引用 在Source Insight中&#xff0c;当我们选中一个函数或者变量的时候&#xff0c;关于它的所有引用地方都高亮显示&#xff0c;想要实现效果如下。 2、配置方法 (1)点击"Options"→“File Type options...” (2)勾选“Highlight referenc…

Python - 【socket】 客户端client重连处理简单示例Demo(一)

一. 前言 在Python中&#xff0c;使用socket进行网络通信时&#xff0c;如果连接断开&#xff0c;可以通过以下步骤实现重连处理 二. 示例代码 1. 定义一个函数&#xff0c;用于建立socket连接 import socketdef connect_socket(host, port):while True:try:# 建立socket连…

CMake:检测python解释器和python库

CMake:检测python解释器和python库 导言检测python解释器CMakeLists.txt输出附录 检测python库项目结构CMakeLists.txt相关源码附录 导言 python是一种非常流行的语言。许多项目用python编写的工具&#xff0c;从而将主程序和库打包在一起&#xff0c;或者在配置或构建过程中使…

当服务器域名出现解析错误的问题该怎么办?

​  域名解析是互联网用户接收他们正在寻找的域的地址的过程。更准确地说&#xff0c;域名解析是人们在浏览器中输入时使用的域名与网站IP地址之间的转换过程。您需要站点的 IP 地址才能知道它所在的位置并加载它。但&#xff0c;在这个过程中&#xff0c;可能会出现多种因素…

小白解密ChatGPT大模型训练;Meta开源生成式AI工具AudioCraft

&#x1f989; AI新闻 &#x1f680; Meta开源生成式AI工具AudioCraft&#xff0c;帮助用户创作音乐和音频 摘要&#xff1a;美国公司Meta开源了一款名为AudioCraft的生成式AI工具&#xff0c;可以通过文本提示生成音乐和音频。该工具包含三个核心组件&#xff1a;MusicGen用…

Win32 EditControl多行文本框自动换行,并在添加新行时自动将光标移到末尾

【文本框属性设置】 设为多行文本框&#xff1a;MultilineTrue 允许按回车键换行&#xff1a;Want ReturnTrue 自动换行&#xff1a;Auto HScrollFalse 在最后一行按回车键&#xff0c;自动向上滚动&#xff1a;Auto VScrollTrue 显示垂直滚动条&#xff1a;Vertical ScrollTru…

maven的下载与安装

文章目录 1 官网下载地址2 设置环境变量3 设置仓库地址4 添加阿里云的中央镜像 1 官网下载地址 https://maven.apache.org/ 下载 2 设置环境变量 MAVEN_HOME PATH mvn -v验证 3 设置仓库地址 仓库地址 4 添加阿里云的中央镜像 阿里云中央镜像

【探索Linux】—— 步步学习强大的命令行工具 P.1(Linux简介)

目录 前言 一、Linux简介 二、linux的不同发行版本 三、Linux的开源性质 四、Linux的特点 五、Linux代码演示&#xff08;仅供参考&#xff09; 总结 前言 前面我们讲了C语言的基础知识&#xff0c;也了解了一些数据结构&#xff0c;并且讲了有关C的一些知识&#xff…

Redis

Redis进阶 讨论问题&#xff1a; 数据存放的位置有哪些&#xff08;磁盘&#xff0c;内存&#xff0c;数据库&#xff09; 为什么做缓存&#xff1f; 速度&#xff1a;内存 >10 倍固态硬盘 > 10 倍机械硬盘 一、SpringBoot操作Redis 1、 添加redis依赖 spring Boo…

Java源码规则引擎:jvs-rules 8月新增功能介绍

JVS-rules是JAVA语言下开发的规则引擎&#xff0c;是jvs企业级数字化解决方案中的重要配置化工具&#xff0c;核心解决业务判断的配置化&#xff0c;常见的使用场景&#xff1a;金融信贷风控判断、商品优惠折扣计算、对员工考核评分等各种变化的规则判断情景。 8月是收获的季节…

JVM入门到精通

一、JVM概念 1.1、什么是JVM Java Virtual Machine&#xff1a;Java虚拟机&#xff0c;用来保证Java语言跨平台 Java虚拟机可以看做是一台抽象的计算机&#xff0c;如同真实的计算机那样&#xff0c;它有自己的指令集以及各种运行时内存区域 Java虚拟机与Java语言并没有必然…

Pytorch入门学习——快速搭建神经网络、优化器、梯度计算

我的代码可以在我的Github找到 GIthub地址 https://github.com/QinghongShao-sqh/Pytorch_Study 因为最近有同学问我如何Nerf入门&#xff0c;这里就简单给出一些我的建议&#xff1a; &#xff08;1&#xff09;基本的pytorch&#xff0c;机器学习&#xff0c;深度学习知识&a…

ChatGPT“侵入”校园,教学评价体制受冲击,需作出调整

北密歇根大学的教授奥曼在学生作业中发现了一篇关于世界宗教的“完美论文”。“这篇文章写得比大多数学生都要好......好到不符合我对学生的预期&#xff01;”他去问ChatGPT&#xff1a;“这是你写的吗&#xff1f;”ChatGPT回答&#xff1a;“99.9%的概率是的。” ChatGPT“侵…

HTTP——八、确认访问用户身份的认证

HTTP 一、何为认证二、BASIC认证BASIC认证的认证步骤 三、DIGEST认证DIGEST认证的认证步骤 四、SSL客户端认证1、SSL 客户端认证的认证步骤2、SSL 客户端认证采用双因素认证3、SSL 客户端认证必要的费用 五、基于表单认证1、认证多半为基于表单认证2、Session 管理及 Cookie 应…

ORB算法在opencv中实现方法

在OPenCV中实现ORB算法&#xff0c;使用的是&#xff1a; 1.实例化ORB orb cv.xfeatures2d.orb_create(nfeatures)参数&#xff1a; nfeatures: 特征点的最大数量 2.利用orb.detectAndCompute()检测关键点并计算 kp,des orb.detectAndCompute(gray,None)参数&#xff1a…

数据结构---B树

目录标题 B-树的由来B-树的规则和原理B-树的插入分析B-树的插入实现准备工作find函数insert中序遍历 B-树的性能测试B-树的删除B树B树的元素插入B*树的介绍 B-树的由来 在前面的学习过程中&#xff0c;我们见过很多搜索结构比比如说顺序查找&#xff0c;二分查找&#xff0c;搜…

一文学透设计模式——抽象工厂模式

创建者模式 抽象工厂模式 概念 抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这是很多地方对于抽象工厂模式的描述&#xff0c;说实话感觉不是特别好懂。…

阿里云二级域名配置

阿里云二级域名配置 首先需要进入阿里云控制台的域名管理 1.选择域名点击解析 2.添加记录 3.选择A类型 4.主机记录设置【可以aa.bb或者aa.bb.cc】 到时候会变成&#xff1a;aa.bb.***.com 5.解析请求来源设置为默认 6.记录值 设置为要解析的服务器的ip地址 7.TTL 默认即…

linux Ubuntu 更新镜像源、安装sudo、nvtop

1.更换镜像源 vi ~/.pip/pip.conf在打开的文件中输入: pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple按下:wq保存并退出。 2.安装nvtop 如果输入指令apt install nvtop报错&#xff1a; E: Unable to locate package nvtop 需要更新一下apt&a…