好,話題引入隔離在維基百科上有這樣的話,鏈接是here什麼是範圍鎖?
......... 序列化 這是最高的隔離級別。 使用基於鎖的併發控制DBMS實現時,可序列化需要在事務結束時釋放讀取和寫入鎖(在選定數據上獲取)。另外範圍鎖必須在SELECT查詢使用範圍內的WHERE子句時獲取,特別是爲了避免幻像讀取現象(見下文)。 使用基於非鎖定的併發控制時,不會獲取鎖定;但是,如果系統在幾個併發事務中檢測到寫衝突,則只允許其中一個事務提交。有關此主題的更多詳細信息,請參閱快照隔離
但整個話題沒有解釋「範圍鎖」,谷歌沒有準確的描述。
什麼是「範圍鎖定」,以及與「讀取鎖定」和「寫入鎖定」不同的是什麼?
謝謝!
這不只是'BETWEEN'。任何時候選擇不是針對單個唯一的行,您可能會得到範圍鎖定。 'SELECT * FROM Users WHERE LastName ='Adams''是一個範圍,因爲它可以返回多行,並且沒有BETWEEN子句。 –
值得注意的是,範圍鎖定還鎖定了兩個元組之間的範圍,而不僅僅是元組本身。 – usr
在這種情況下什麼是「元組」? – d512