首页 > 数据库 >mysql并发插入死锁

mysql并发插入死锁

时间:2022-10-28 23:33:34浏览次数:57  
标签:insert 事务 lock 并发 死锁 key mysql id

前言

开发中遇到多线程并发情况对数据批量插入

主键id非雪花id,函数自增id

原理分析

两个事务都持有该行的 S 锁,期望获取 X 锁时被对方阻塞了。

通俗讲就是并发插入出现相同的主键id导致阻塞

在insert操作的时候就需要去拿 X 锁

共享锁(Shared Lock)

共享锁(Shared Lock),又称S锁、读锁。针对行锁。
当有事务对数据加读锁后,其他事务只能对锁定的数据加读锁,不能加写锁(排他锁),所以其他事务只能读,不能写。

标签:insert,事务,lock,并发,死锁,key,mysql,id
From: https://www.cnblogs.com/tsangyi/p/16837829.html

相关文章

  • MySQL——00
    索引数据结构MySQL中常见索引数据有B+Tree、Hash,其他几乎不用。Hash最简单,容易理解,其实用的也不多,因为有局限性优点:一次内存运算即可定位,效率高缺点:有可能hash冲突,这就会导......
  • MySQL事务
    事务通常是默认开启事务的,所以不会回滚事务保证了数据的一致性要么都成功要么都失败对于没有开启自动提交的数据,是可以回滚的,一旦提交了之后,就不可以回滚,体现了MySQ......
  • 常见的MySQL面试题有哪些?
    本文主要介绍我在公司招聘的时候,主要问应聘者的一些问题,希望对换工作的同行及在使用过程中有些疑问的同行有所帮助1. MySQL海量数据优化优化问题主要从SQL优化、事务级别调......
  • MySQL--常用语句
    MySQL常用语句1、获取数据库信息1.use数据库名;//选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。2.showdatabases;//列出MySQL数据库管理......
  • 【SpringBoot】引入mybatis及连接Mysql数据库
    创建一个SpringBoot项目其他不赘叙了,引入MyBaties、MySql依赖编辑 创建mysql表CREATETABLEsp_users(`id`INTPRIMARYKEY,`username`VARCHAR(30),`age`INT);刚......
  • 视频融合平台EasyCVR如何操作MySQL数据库来批量关闭通道?
    EasyCVR具备强大的视频接入、汇聚与管理、视频分发等视频能力,可实现的视频功能包括:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、服务器集群、智......
  • mysql update 带条件的语句执行错误
    需求:想着更新id最大的一条数据: 原来的sql:   updatework_plane_log_detailsSET`off_working_time`='2021-03-0911:16:23'WHEREidin(selectidfromwork_pl......
  • mysql 生成指定范围的数值 保留两位(可以是整数,可以是小数)
    大家都知道mysqlrand用起来在某些场景下不是很好用,今天咱们就来实现一个函数。来提升他的功能1.随机生成0.0.1~0.05之间的数据DROPFUNCTIONIFEXISTSrand_num;C......
  • 视频融合平台EasyCVR如何操作MySQL数据库来批量关闭通道?
    EasyCVR具备强大的视频接入、汇聚与管理、视频分发等视频能力,可实现的视频功能包括:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、服务器集群、智......
  • Mysql取整函数
    Mysql取整函数1.round四舍五入取整round(s,n):对s四舍五入保留n位小数,n取值可为正、负、零.如四舍五入到整数位,则n取零.2.ceil向上取整ceil(s):返回比s大的最小整数3.floo......