insert语句会锁表吗(Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗)

2025-07-24 01:30:01 :0

insert语句会锁表吗(Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗)

其实insert语句会锁表吗的问题并不复杂,但是又很多的朋友都不太了解Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗,因此呢,今天小编就来为大家分享insert语句会锁表吗的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗

不会的,如果不是在一个事务中读取出来的数据是Insert之前的。如果在一个事务中,则是Insert之后的情况

MYSQL insert into select 锁表问题

加锁情况与死锁原因分析

为方便大家复现,完整表结构和数据如下:

CREATE TABLE `t3` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
UNIQUE KEY `c2` (`c2`)
) ENGINE=InnoDB
insert into t3 values(1,1),(15,15),(20,20);

在 session1 执行 commit 的瞬间,我们会看到 session2、session3 的其中一个报死锁。这个死锁是这样产生的:

  • 1. session1 执行 delete  会在唯一索引 c2 的 c2 = 15 这一记录上加 X lock(也就是在MySQL 内部观测到的:X Lock but not gap);

  • 2. session2 和 session3 在执行 insert 的时候,由于唯一约束检测发生唯一冲突,会加 S Next-Key Lock,即对 (1,15] 这个区间加锁包括间隙,并且被 seesion1 的 X Lock 阻塞,进入等待;

  • 3. session1 在执行 commit 后,会释放 X Lock,session2 和 session3 都获得 S Next-Key Lock;

  • 4. session2 和 session3 继续执行插入操作,这个时候 INSERT INTENTION LOCK(插入意向锁)出现了,并且由于插入意向锁会被 gap 锁阻塞,所以 session2 和 session3 互相等待,造成死锁。

  • 死锁日志如下:

    请点击输入图片描述

    INSERT INTENTION LOCK

    在之前的死锁分析第四点,如果不分析插入意向锁,也是会造成死锁的,因为插入最终还是要对记录加 X Lock 的,session2 和 session3 还是会互相阻塞互相等待。

    但是插入意向锁是客观存在的,我们可以在官方手册中查到,不可忽略:

  • Prior to inserting the row, a type of gap lock called an insert intention gap lock is set. This lock signals the intent to insert in such a way that multiple transactions inserting into the same index gap need not wait for each other if they are not inserting at the same position within the gap.
  • 插入意向锁其实是一种特殊的 gap lock,但是它不会阻塞其他锁。假设存在值为 4 和 7 的索引记录,尝试插入值 5 和 6 的两个事务在获取插入行上的排它锁之前使用插入意向锁锁定间隙,即在(4,7)上加 gap lock,但是这两个事务不会互相冲突等待。

    当插入一条记录时,会去检查当前插入位置的下一条记录上是否存在锁对象,如果下一条记录上存在锁对象,就需要判断该锁对象是否锁住了 gap。如果 gap 被锁住了,则插入意向锁与之冲突,进入等待状态(插入意向锁之间并不互斥)。总结一下这把锁的属性:

  • 1. 它不会阻塞其他任何锁;

  • 2. 它本身仅会被 gap lock 阻塞。

  • 在学习 MySQL 过程中,一般只有在它被阻塞的时候才能观察到,所以这也是它常常被忽略的原因吧...

    GAP LOCK

    在此例中,另外一个重要的点就是 gap lock,通常情况下我们说到 gap lock 都只会联想到 REPEATABLE-READ 隔离级别利用其解决幻读。但实际上在 READ-COMMITTED 隔离级别,也会存在 gap lock ,只发生在:唯一约束检查到有唯一冲突的时候,会加 S Next-key Lock,即对记录以及与和上一条记录之间的间隙加共享锁。

    通过下面这个例子就能验证:

    请点击输入图片描述

    这里 session1 插入数据遇到唯一冲突,虽然报错,但是对 (15,20] 加的 S Next-Key Lock 并不会马上释放,所以 session2 被阻塞。另外一种情况就是本文开始的例子,当 session2 插入遇到唯一冲突但是因为被 X Lock 阻塞,并不会立刻报错 “Duplicate key”,但是依然要等待获取 S Next-Key Lock 。

    有个困惑很久的疑问:出现唯一冲突需要加 S Next-Key Lock 是事实,但是加锁的意义是什么?还是说是通过 S Next-Key Lock 来实现的唯一约束检查,但是这样意味着在插入没有遇到唯一冲突的时候,这个锁会立刻释放,这不符合二阶段锁原则。这点希望能与大家一起讨论得到好的解释。

    如果是在 REPEATABLE-READ,除以上所说的唯一约束冲突外,gap lock 的存在是这样的:

    普通索引(非唯一索引)的S/X Lock,都带 gap 属性,会锁住记录以及前1条记录到后1条记录的左闭右开区间,比如有记录,delete 6,则会锁住[4,8)整个区间。

    对于 gap lock,相信 DBA 们的心情是一样一样的,所以我的建议是:

  • 1. 在绝大部分的业务场景下,都可以把 MySQL 的隔离界别设置为 READ-COMMITTED;

  • 2. 在业务方便控制字段值唯一的情况下,尽量减少表中唯一索引的数量。

  • 锁冲突矩阵

    前面我们说的 GAP LOCK 其实是锁的属性,另外我们知道 InnoDB 常规锁模式有:S 和 X,即共享锁和排他锁。锁模式和锁属性是可以随意组合的,组合之后的冲突矩阵如下,这对我们分析死锁很有帮助:

    请点击输入图片描述

直接insert或update也会造成事务死锁吗

死锁是操作系统的名词。是指在响应数据库操作时的反应情况。
这个与计算机的配置及环境设置有关。
注意一般的insert不会出问题,因为此语句,只是在数据库的最末写入新纪录。
而update,较之占内存。

oracle insert 锁表 怎么解决

你好,会锁表的,只要是dml语句,都会锁表
dml:
insert
into
update
delete
希望你满意。满意采纳。谢谢

oracle insert select会锁表吗

你好,会锁表的,只要是dml语句,都会锁表
dml: insert into update delete
希望你满意。满意采纳。谢谢

Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗、Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗的信息别忘了在本站进行查找哦。

insert语句会锁表吗(Oracle中insert到一张表数据,但是不提交,这个时候select,会不会锁表,如果在并发量是500,会锁表吗)

本文编辑:admin

更多文章:


维热纳尔密码翻译器(请问有谁知道古代密码学的发展过程)

维热纳尔密码翻译器(请问有谁知道古代密码学的发展过程)

今天给各位分享请问有谁知道古代密码学的发展过程的知识,其中也会对请问有谁知道古代密码学的发展过程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录请问有谁知道古代密码学的发展过程密码解密主要是用运用什么原理维热纳

2026年7月10日 23:15

手机老是出现failed(华为手机errconnectfailed)

手机老是出现failed(华为手机errconnectfailed)

“手机老是出现failed”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看手机老是出现failed(华为手机errconnectfailed)!本文目录华为手机errconnectfailed苹果手机为什么总出现失败怎么办啊

2025年12月31日 05:30

快递公司网站设计(中通快递logo的设计理念是什么)

快递公司网站设计(中通快递logo的设计理念是什么)

今天给各位分享中通快递logo的设计理念是什么的知识,其中也会对中通快递logo的设计理念是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录中通快递logo的设计理念是什么联邦快递网站的功能和特点物流公司网

2025年8月28日 15:45

mathematica10下载(mathematica免费下载地址)

mathematica10下载(mathematica免费下载地址)

大家好,今天小编来为大家解答以下的问题,关于mathematica10下载,mathematica免费下载地址这个很多人还不知道,现在让我们一起来看看吧!本文目录mathematica免费下载地址mathematica下载mathemati

2026年1月12日 23:00

catchphrase的意思(catchphrase是什么意思)

catchphrase的意思(catchphrase是什么意思)

大家好,今天小编来为大家解答以下的问题,关于catchphrase的意思,catchphrase是什么意思这个很多人还不知道,现在让我们一起来看看吧!本文目录catchphrase是什么意思phrase是什么意思catchphrase是什么

2025年7月19日 18:45

server作主语(英语you must set two server name values怎么翻译)

server作主语(英语you must set two server name values怎么翻译)

大家好,关于server作主语很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于英语you must set two server name values怎么翻译的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决

2026年2月25日 04:00

c语言求最大公约数和最小公倍数辗转相除法(c语言求最大公约数和最小公倍数)

c语言求最大公约数和最小公倍数辗转相除法(c语言求最大公约数和最小公倍数)

各位老铁们好,相信很多人对c语言求最大公约数和最小公倍数辗转相除法都不是特别的了解,因此呢,今天就来为大家分享下关于c语言求最大公约数和最小公倍数辗转相除法以及c语言求最大公约数和最小公倍数的问题知识,还望可以帮助大家,解决大家的一些困惑,

2025年6月24日 13:30

表单大师下载表单大师app下载(眉山市幼儿报名登记表怎么下载下来)

表单大师下载表单大师app下载(眉山市幼儿报名登记表怎么下载下来)

各位老铁们,大家好,今天由我来为大家分享表单大师下载表单大师app下载,以及眉山市幼儿报名登记表怎么下载下来的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2025年7月1日 03:15

webservice访问地址(浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL)

webservice访问地址(浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL)

大家好,webservice访问地址相信很多的网友都不是很明白,包括浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL也是一样,不过没有关系,接下来就来

2026年5月7日 20:30

count函数怎么用来统计单元格数量(EXCEL中如何统计此列有数字的单元格个数)

count函数怎么用来统计单元格数量(EXCEL中如何统计此列有数字的单元格个数)

本篇文章给大家谈谈count函数怎么用来统计单元格数量,以及EXCEL中如何统计此列有数字的单元格个数对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔

2025年9月23日 17:15

eclipse jdk编译版本(JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本)

eclipse jdk编译版本(JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本)

今天给各位分享JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本的知识,其中也会对JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本进行解释,如果能碰巧解决你现在面临的

2026年1月15日 13:30

奔驰e300可以插u盘听歌吗(奔驰E300怎么插U盘)

奔驰e300可以插u盘听歌吗(奔驰E300怎么插U盘)

今天给各位分享奔驰E300怎么插U盘的知识,其中也会对奔驰E300怎么插U盘进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录奔驰E300怎么插U盘奔驰e300如何插U盘听歌2011奔驰e300车上有插u盘的地方

2025年12月11日 03:45

模板制作检验批多少米一张(3000多米的围墙,每100米做一个检验批具体怎么做)

模板制作检验批多少米一张(3000多米的围墙,每100米做一个检验批具体怎么做)

大家好,关于模板制作检验批多少米一张很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于3000多米的围墙,每100米做一个检验批具体怎么做的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站

2026年9月17日 02:30

easyuidatagrid 获取选中行数据到详情页(easyui datagrid 怎样获取点击行的数据)

easyuidatagrid 获取选中行数据到详情页(easyui datagrid 怎样获取点击行的数据)

大家好,如果您还对easyuidatagrid 获取选中行数据到详情页不太了解,没有关系,今天就由本站为大家分享easyuidatagrid 获取选中行数据到详情页的知识,包括easyui datagrid 怎样获取点击行的数据的问题都会给

2025年6月21日 20:00

img格式打开(win7电脑如何打开img文件win7系统打开img文件的方法)

img格式打开(win7电脑如何打开img文件win7系统打开img文件的方法)

本篇文章给大家谈谈img格式打开,以及win7电脑如何打开img文件win7系统打开img文件的方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录win7电脑如何打开img文件win7系统打开img文件的方法img用什么软件

2025年9月24日 08:30

befarform是什么意思(be far form中的form什么意思 说详细些)

befarform是什么意思(be far form中的form什么意思 说详细些)

其实befarform是什么意思的问题并不复杂,但是又很多的朋友都不太了解be far form中的form什么意思 说详细些,因此呢,今天小编就来为大家分享befarform是什么意思的一些知识,希望可以帮助到大家,下面我们一起来看看这个

2025年12月14日 23:15

小时代2免费观看(小时代2电影的剧情简介谁知道)

小时代2免费观看(小时代2电影的剧情简介谁知道)

本篇文章给大家谈谈小时代2免费观看,以及小时代2电影的剧情简介谁知道对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录小时代2电影的剧情简介谁

2025年6月8日 05:45

js禁止页面前进和后退(禁止浏览器页面的前进和后退的方式)

js禁止页面前进和后退(禁止浏览器页面的前进和后退的方式)

今天给各位分享禁止浏览器页面的前进和后退的方式的知识,其中也会对禁止浏览器页面的前进和后退的方式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录禁止浏览器页面的前进和后退的方式用js如何控制 html5 vid

2025年10月26日 14:15

xml文件和db文件的区别(db文件是什么文件啊)

xml文件和db文件的区别(db文件是什么文件啊)

“xml文件和db文件的区别”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看xml文件和db文件的区别(db文件是什么文件啊)!本文目录db文件是什么文件啊db文件是什么格式文件类型有那些db文件是什么文件啊.db是date

2026年7月9日 17:15

两函数相加定义域怎么求(两函数相加 定义区怎么求啊拜托了各位 谢谢)

两函数相加定义域怎么求(两函数相加 定义区怎么求啊拜托了各位 谢谢)

各位老铁们好,相信很多人对两函数相加定义域怎么求都不是特别的了解,因此呢,今天就来为大家分享下关于两函数相加定义域怎么求以及两函数相加 定义区怎么求啊拜托了各位 谢谢的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目

2026年9月20日 15:30

近期文章

ilitate(imitate意思是)
2026-09-25 23:30:01
本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索