那么,话题介绍孤立在维基百科有这样的词,链接是这里
.可序列化,这是最高的隔离级别。通过基于锁的并发控制DBMS实现,可序列化性要求在事务结束时释放读和写锁(在所选数据上获取)。此外,当SELECT查询使用range子句时,必须获得范围锁定,特别是为了避免幻影读取现象(见下文)。当使用基于非锁的并发控制时,不会获得锁;但是,如果系统检测到多个并发事务之间的写冲突,则只允许其中一个事务提交。有关此主题的详细信息,请参阅快照隔离。
但是整个话题并没有解释“范围锁定”,谷歌alse没有准确的描述。
什么是“范围锁”,与“读锁”和“写锁”有什么不同?
谢谢!
发布于 2012-08-29 13:43:05
如果在WHERE
子句中使用范围,数据库将锁定此范围内的每个可能的元组以及下一个元组(前后)。如果在一个方向上没有下一个元组可用,它将在这个方向上完全锁定。
因此,SELECT
在事务中是可靠的。
发布于 2012-08-29 14:08:14
使用锁定(并非所有数据库都使用锁定)来防止并发操作冲突的最简单方法是锁定整个数据库。不过,这会使每件事都变得非常缓慢。
下一个是如果你把整张桌子锁上。至少其他桌子没有慢下来。
最窄的是锁一排。您可以安全地更新该行,而不阻止其他操作。
距离锁在最后两个之间。使用它的案例包括:
23
,因此23
标识的是一个范围而不是一行)。max(curvalue) + indexincrement
和∞
之间)。https://stackoverflow.com/questions/12179130
复制相似问题