k8s 間隙鎖用法?
間隙鎖用法?間隙鎖定功能確保鎖定時(shí)某一間隙內(nèi)的數(shù)據(jù)不會發(fā)生變化。例如,MySQL的默認(rèn)隔離級別是repeatable read(RR)。使用唯一索引搜索具有唯一行的語句時(shí),不需要間隙鎖。例如,如果下面
間隙鎖用法?
間隙鎖定功能
確保鎖定時(shí)某一間隙內(nèi)的數(shù)據(jù)不會發(fā)生變化。例如,MySQL的默認(rèn)隔離級別是repeatable read(RR)。
使用唯一索引搜索具有唯一行的語句時(shí),不需要間隙鎖。例如,如果下面語句的ID列具有唯一索引,則記錄鎖將僅用于ID值為10的行。
選擇*from t where id=10 for update//注意:普通查詢是快照讀取,不需要鎖定
如果上述語句中的id列沒有索引或不唯一,則該語句將生成一個(gè)間隙鎖。
mysql有了間隙鎖只有能夠解決幻讀問題嗎?
不可重復(fù)讀?。涸谖刺峤坏氖聞?wù)中,輔助查詢結(jié)果可能不同,因?yàn)樵谑聞?wù)執(zhí)行期間,外部事務(wù)可能會修改和提交數(shù)據(jù)集
!虛幻閱讀:操作過程中的事務(wù)!有其他事務(wù)修改并提交此數(shù)據(jù)集,但無法讀取這些操作的第一個(gè)事務(wù)。提交此事務(wù)時(shí),可能會導(dǎo)致錯(cuò)誤:找不到插入的數(shù)據(jù),但重復(fù)插入
!不可重復(fù)讀取和非真實(shí)讀取的區(qū)別:
不可重復(fù)讀取可以讀取其他事務(wù)提交的數(shù)據(jù),而非真實(shí)讀取不能讀取其他事務(wù)提交的數(shù)據(jù)
!間隙鎖:間隙鎖主要用于防止不真實(shí)的讀取。它在可重復(fù)讀取隔離級別下使用。它是指在檢索數(shù)據(jù)的條件和范圍時(shí),鎖定數(shù)據(jù)范圍中可能不存在的值!