数据库 – 什么是范围锁?

前端之家收集整理的这篇文章主要介绍了数据库 – 什么是范围锁?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好吧,主题介绍隔离在维基百科有这样的话,链接here

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

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

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

谢谢!

解决方法

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

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

猜你在找的MsSQL相关文章