前言
开发中遇到多线程并发情况对数据批量插入
主键id非雪花id,函数自增id
原理分析
两个事务都持有该行的 S 锁,期望获取 X 锁时被对方阻塞了。
通俗讲就是并发插入出现相同的主键id导致阻塞
在insert操作的时候就需要去拿 X 锁
共享锁(Shared Lock)
共享锁(Shared Lock),又称S锁、读锁。针对行锁。
当有事务对数据加读锁后,其他事务只能对锁定的数据加读锁,不能加写锁(排他锁),所以其他事务只能读,不能写。
开发中遇到多线程并发情况对数据批量插入
主键id非雪花id,函数自增id
两个事务都持有该行的 S 锁,期望获取 X 锁时被对方阻塞了。
通俗讲就是并发插入出现相同的主键id导致阻塞
在insert操作的时候就需要去拿 X 锁
共享锁(Shared Lock),又称S锁、读锁。针对行锁。
当有事务对数据加读锁后,其他事务只能对锁定的数据加读锁,不能加写锁(排他锁),所以其他事务只能读,不能写。