数据库死锁场景

article/2025/8/26 18:00:14
  • 场景一:
    单一线程多次进入子事务发生死锁
  • 问题:
    线上问题发生了死锁,但通过死锁日志发现一直在等待查询结果。我们使用的数据库是PGsql,默认的隔离级别是“读已提交”,按理来说查询不会加锁,导致一度被带偏。
  • 原因:
    内层事务执行完update后提交事务,但由于内层事务被外层事务包裹着,所以实际上update对应修改的数据行级锁未释放。当第二次进入内层事务进行update时,由于未能获取数据行级锁则一直等待。
    第一个内层事务持有锁,直到外层事务全部执行完才进行释放,外层事务等待第二个方法执行完才能往下走,第二个内层事务又一直在等待行级锁。所以导致死锁发生。在这里插入图片描述
  • 扩展:
    嵌套事务导致的问题:
    1、内层事务回滚,只能回滚全部事务,无法控制单一事务回滚
    2、内层事务提交后,回滚外层事务,也会把内层提交了的事务一起回滚
    3、因为2的原因,只要整个事务不完全提交,日志空间都无法被释放

http://chatgpt.dhexx.cn/article/7cOCSsLI.shtml

相关文章

数据库常见死锁原因及处理

目录 前言什么是死锁死锁产生的四个必要条件 1. 表锁死锁死锁场景解决方案建议 2. 行锁死锁2.1 两个事务分别想拿到对方持有的锁,互相等待,于是产生死锁死锁场景解决方案 2.2 共享锁转换为排他锁死锁场景解决方案 3. INSERT ... ON DUPLICATE KEY UPDATE…

数据库死锁分析与解决

一、死锁的表现 1、错误信息是:事务(进程 ID)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。 2、错误信息是:事务(进程 ID )与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。 二、…

数字 IC 技能拓展(1)Xilinx_Vivado_SDK_2019.1 安装详细教程

引言 工欲善其事必先利其器,而君之“器”尚无,就更别谈“事”了。赶紧!我们需要下载并安装一个 Xilinx Vivado 软件!!接下来就飞速地开始我们的 Xilinx_Vivado_SDK_2019.1 详细安装教程!!&#…

win10安装vivado + vitis 2019.2 教程

win10安装vivado vitis 2019.2 教程 安装包:链接:https://pan.baidu.com/s/1fPlNDzpC0EPXMhOloDyzfA 提取码:1234 网上其他博主的安装教程,比如:vivado2019.2的安装,最后是没有安装上vitis PS端开发软件…

vivado入门教程

vivado入门教程 基本步骤例程实现 第一次写博客,也是第一次使用vivado,自己也在学习之中,欢迎大家的评论啊! 基本步骤 一、新建工程 二、选择工程路径及命名 三、一路next到下图,确定芯片的型号 四、添加源文件 五…

手把手教你安装vivado2015.4开发环境

//vivado2015.4安装教程 //作者:紫菜蛋花汤 //时间:2018.7.8 //版本:V1 准备工作: 1.vivado2015.4安装包 官方下载压缩包文件名:Xilinx_Vivado_SDK_2015.4_1118_2.tar 个人百度云连接:https://pan.ba…

Vivado 2015.4 安装教程(含license)

首先先下载vivado2015.4的压缩文件,可以从网盘里下载: 百度网盘链接:点击链接 下载后解压: 点击xsetup.exe文件 点击Next 点击Next 一定要选择第一个Vivado HL WebPack,不要像图中那样选择第三个,因为第一…

vivado 2017.4安装步骤

目录:windows安装vivado2017.4;虚拟机ubuntu安装vivado 2017.4;ios安装vivado。 一,windows安装vivado2017.4 xilinx官网下载地址为:https://www.xilinx.com/support/download.html 下载完解压后,如图所示…

vivado2019.2安装+license添加教程

vivado2019.2安装license添加教程 注意: 1.电脑的账户名字一定是英文; 2.压缩文件夹有30个G,安装后会更大,需要预留足够的空间。 1.资源链接 百度网盘: https://pan.baidu.com/s/1xEuB-vzoXWpj40fd1wAEFg 密码:tkk1…

[Software]Vivado 2018.2 安装及激活教程

一、安装 1、 解压文件 注:要将压缩文件解压至无中文的路径中。 2、 双击“xsetup.exe”文件,开始安装 3、 不选择新版本,选择继续安装此版本 4、 点击“Next”出现协议,在“I Agree”前都打勾 5、 版本选择,用户可以…

Vivado的下载和安装

本文是自己在安装和使用vivado的一个简单记录。 在安装之前进入官网下载好自己需要版本的安装包,软件安装包比较大,需要花费比较长的一段时间。 vivado官网下载地址 :下载地址 安装好软件后需要使用到license文件,可以去官网申…

Vivado2021.2版本安装教程

Vivado2021.2版本安装教程 2021.2版本提取链接:https://pan.baidu.com/s/12P7twkEVErKmqTmkhTnvMg 提取码:2hyr。 第一步:首先打开解压好的软件,找到xsetup.exe,然后管理员模式运行,出现以下界面,点击Next。…

Vivado安装教程详细版

之前问过大佬,哪个版本的vivado更加稳定,大佬说2017.4,于是俺就安装了一个。 安装步骤: 关闭360等杀毒软件。 下载解压后,双击打开这个xsetup程序: 弹出 点击Continue 三个I Agree全部勾选,…

Vivado 2018.3 安装步骤及 license 获取

本文的主要内容是介绍 Vivado 2018.3 版本的安装步骤及其 license 的获取与加载。 首先下载安装包,将其在没有中文的路径下解压。注意在解压前最好关闭电脑的杀毒软件,防止某些文件被拦截或者删除! 解压完成后打开文件夹,在最底部…

Vivado的安装以及使用_入门

Vivado的安装以及使用 零. Vivado简要介绍 Vivado是FPGA厂商赛灵思提供的一款EDA(Electronic Design Automation)工具. 在电子设计自动化方面, 其主要提供了四种功能: RTL代码编写, 功能仿真, 综合(synthesis)以及实现(implementation). 其中, RTL代码…

Vivado安装—Xilinx design tool already exists for 2019.1,specify a different program program group entr

V i v a d o 重 新 安 装 出 现 问 题 ? {\color{Red}Vivado重新安装出现问题?} Vivado重新安装出现问题? V i v a d o 重 新 安 装 出 现 问 题 ? {\color{Red}Vivado重新安装出现问题?} Vivado重新安装出现问题&…

vivado2017.4安装教程

安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,存放安装包的路径最好也不要有中文。 1、解压安装包到当前文件夹 2、运行安装程序。 3、提示下载最新的版本,不要下载,点击Continue,然后点击next。 4、点击I Agree&#x…

vivado快速下载及解压安装教程

vivado快速下载及解压安装教程 一,登录中文版官网 网址 https://china.xilinx.com link 滑动至页面下方产品支持类目点击下载与许可 选择想要下载的版本,初学者建议下载和所要用的教程视频一致的版本或每一年的最后一版最为稳定。 如要下载更早的版本…

FPGA学习——Vivado2017.4安装教程

为方便大家正常学习,提供了Vivado2017.4软件的安装及破解教程,供大家参考。 1、Vivado2017.4安装包下载解压完成后,如下图所示,Linux系统执行蓝色框线(xsetup),Windows系统双击执行红色框线&am…

Xilinx_Vivado_2019.1下载和安装教程

一、vivado2019.1下载和安装教程 1、首先要下载安装包,建议直接在Xilinx官网下载:https://www.xilinx.com/support/download.html。选择我们需要安装的安装包(其他版本也是这样,需要选择支持所有OS的安装包)&#xff…