加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库 – 什么是范围锁?

发布时间:2020-12-12 08:51:28 所属栏目:MsSql教程 来源:网络整理
导读:好吧,主题介绍隔离在维基百科有这样的话,链接是 here ……… 序列化 这是最高的隔离级别. 通过基于锁的并发控制DBMS实现,可序列化要求在事务结束时释放读取和写入锁定(在所选数据上获取).当SELECT查询使用范围广泛的WHERE子句时,必须获取范围锁定,特别是避免
好吧,主题介绍隔离在维基百科有这样的话,链接是 here

………
序列化
这是最高的隔离级别.
通过基于锁的并发控制DBMS实现,可序列化要求在事务结束时释放读取和写入锁定(在所选数据上获取).当SELECT查询使用范围广泛的WHERE子句时,必须获取范围锁定,特别是避免幻像读取现象(见下文).
当使用非锁定的并发控制时,不会获取锁;然而,如果系统检测到几个并发事务之间的写入冲突,则只有其中一个被允许提交.有关此主题的详细信息,请参阅快照隔离.

但整个主题没有解释“范围锁”,谷歌没有准确的描述.

什么是“范围锁”,哪些与“读锁”和“写锁”不同?

谢谢!

解决方法

如果在WHERE子句中使用范围,数据库将锁定该范围内的每个可能的元组,也将锁定下一个元组(前后).如果在方向上没有可用的下一个元组,它将在该方向上完全锁定.

所以SELECT在事务中是可靠的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读