好吧,主题介绍隔离在维基百科有这样的话,链接是
here
………
序列化
这是最高的隔离级别.
通过基于锁的并发控制DBMS实现,可序列化要求在事务结束时释放读取和写入锁定(在所选数据上获取).当SELECT查询使用范围广泛的WHERE子句时,必须获取范围锁定,特别是避免幻像读取现象(见下文).
当使用非锁定的并发控制时,不会获取锁;然而,如果系统检测到几个并发事务之间的写入冲突,则只有其中一个被允许提交.有关此主题的详细信息,请参阅快照隔离.
但整个主题没有解释“范围锁”,谷歌没有准确的描述.
什么是“范围锁”,哪些与“读锁”和“写锁”不同?
谢谢!
解决方法
@H_301_17@ 如果在WHERE子句中使用范围,数据库将锁定该范围内的每个可能的元组,也将锁定下一个元组(前后).如果在方向上没有可用的下一个元组,它将在该方向上完全锁定.所以SELECT在事务中是可靠的.