首页 > 数据库 >记一个mysql死锁问题,在并发情况下导致的数据库更新超时

记一个mysql死锁问题,在并发情况下导致的数据库更新超时

时间:2023-09-19 15:58:26浏览次数:39  
标签:语句 超时 更新 死锁 mysql 并发流

1、问题:

在执行mysql数据库更新操作,根据条件更新其中一列的值,具体的更新语句类似如下:

update people set name = 'zhangsan' where id = 1 a  and age = 24;

但是在Java中使用

parallelStream().foreach(a->{

//sql更新操作

})

并发流就会出现问题,导致有的更新会失败,报如下错误:

MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

2、解决:

主要是在并发流执行过程中,sql根据条件进行更新会对表中的行进行锁定,导致出现死锁,而死锁就会导致后边再来的更新语句无法获取到锁进行执行而超时,所以遇到更新的语句时,还是需要按顺序就行更新,不要使用并发流

标签:语句,超时,更新,死锁,mysql,并发流
From: https://www.cnblogs.com/Silentness/p/17714852.html

相关文章

  • 【转】MySQL安装失败原因及解决方案
     MySQL安装,初始化数据的时候失败。。。。。报错bin.index一堆的乱码找了好长时间的原因了。。。。。。。大概率原因是:计算机名称是中文。 转自:MySQL安装失败原因及解决方案(ngui.cc)......
  • mysql TRUNCATE DELETE DROP
    https://www.cnblogs.com/cy0628/p/15019630.html     truncate与drop,delete的对比(重要)12345678上面说过truncate与delete,drop很相似,其实这三者还是与很大的不同的,下面简单对比下三者的异同。 truncate与drop是DDL语句,执行后无法回滚;delete是DML......
  • orcle和mysql的区别
    orcle和mysql的区别Oracle数据库产品是闭源同时也是收费的,MySQL是开源的项目(免费);Oracle是大型数据库,Mysql是中小型数据库;Oracle可以设置用户权限、访问权限、读写权限等,MySQL没有;Oracle有表空间的概念,MySQL没有;Oracle默认不自动提交,需要用户手动提交。Mysql默认是......
  • 软件测试|MySQL 外连接的详细解析与示例
    简介在关系型数据库中,表之间常常存在着关联关系。MySQL提供了多种连接操作,其中之一是外连接(LEFTJOIN和RIGHTJOIN)。本文将深入探讨MySQL中左外连接和右外连接的概念、语法以及使用示例。外连接(LEFTJOIN和RIGHTJOIN)的概念外连接是一种用于从两个表中检索相关数据的SQL操作。它可......
  • Linux系统同时安装MySQL5.7和MySQL8.0
    本文是在一台Centos7虚拟机上面同时安装mysql5.7和mysql8.0的步骤,记录一下,方便后续回顾,这篇文章之后会接着学习搭建两台虚拟机一主一从的架构。其中配置的文件名称、目录、端口号、IP地址要根据自己电脑的实际情况进行更改。mysql5.7和mysql8.0同时安装完成后:将安装包上传到家目录......
  • 6.MySQL锁
    锁是一种常见的并发事务的控制方式。(1)表级锁和行级锁了解吗?有什么区别?MyISAM仅仅支持表级锁(table-levellocking),一锁就锁整张表,这在并发写的情况下性非常差。InnoDB不光支持表级锁(table-levellocking),还支持行级锁(row-levellocking),默认为行级锁。行级锁的粒......
  • python连接mysql
    pymysql是Python的一个MySQL数据库操作库,支持连接MySQL服务器,并进行数据库操作。例如以下代码段演示了如何使用pymysql库将数据存储到MySQL数据库py代码importpymysqldb=pymysql.connect(host='localhost',user='test',password='test',database='test',charset='utf8'......
  • python处理xls数据并保存到mysql数据库
    #-*-coding:utf-8-*-#CreatedbyY.W.on2017/7/3117:46.importpymysqlimportxlrd#获取xlsx文件,获取sheet文件try:book=xlrd.open_workbook('D:/test.xls')sheet=book.sheet_by_name(u'Sheet1')exceptExceptionase:prin......
  • MySQL优化(业务系统)
    影响一个系统的运行速度的原因是多方面的,前端、后端、数据库、中间件、服务器、网络等等,今天我们从常常被关注的数据库角度出发。跟系统的优化方向一样,数据库的优化,也是多方面的,其中涵盖着SQL语句的执行情况,数据库自身的情况等等,数据库种类众多,下面我们以目前常用的Mysql数据库为......
  • 设置串口读写超时
     //注:读写方式为同步,另,此方法对虚拟串口无效。HANDLEhCom1=CreateFile(_T("COM1"),GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);if(hCom1==INVALID_HANDLE_VALUE)MessageBox(0,0,0,0);DCBdcb;if(GetCommState(hC......