| 事務(wù)隔離級(jí)別/缺陷 | 臟讀 | 不可重復(fù)讀 | 幻讀 |
|---|---|---|---|
| 讀未提交(read uncommit) | 可能 | 可能 | 可能 |
| 讀已提交(read commit) | 不可能 | 可能 | 可能 |
| 可重復(fù)讀(repeated read) | 不可能 | 不可能 | 可能 |
| 可串行化(Serializable ) | 不可能 | 不可能 | 不可能 |
臟讀是一個(gè)事務(wù)讀取到另一個(gè)事務(wù)未提交的數(shù)據(jù)。比如事務(wù)A把學(xué)員分?jǐn)?shù)改為1,但是未提交,此時(shí)事務(wù)B讀取到了這個(gè)分?jǐn)?shù),但是事務(wù)A把事務(wù)回滾了,此時(shí)事務(wù)B獲取到了一個(gè)錯(cuò)誤的數(shù)據(jù)
不可重復(fù)讀是指在一個(gè)事務(wù)中兩次讀取的結(jié)果不同,比如事務(wù)A先獲取到了學(xué)員分?jǐn)?shù)為1,此時(shí)事務(wù)B將分?jǐn)?shù)修改為2并提交,然后事務(wù)A再次讀取學(xué)員分?jǐn)?shù)得到2;造成在同一個(gè)事務(wù)中兩次讀取的結(jié)果不一致;造成不可重復(fù)讀的操作是update
幻讀是指事務(wù)A讀取與搜索條件相匹配的若干行。事務(wù)B以插入或刪除行等方式來(lái)修改事務(wù)A的結(jié)果集,然后再提交。比如數(shù)據(jù)庫(kù)中存在學(xué)員tom的語(yǔ)文,數(shù)學(xué)成績(jī),事務(wù)根據(jù)學(xué)員名稱(chēng)去獲取成績(jī)查詢(xún)出了語(yǔ)文,數(shù)學(xué)兩科成績(jī)。但此時(shí)事務(wù)B向數(shù)據(jù)庫(kù)中插入了tom的英語(yǔ)成績(jī);此時(shí)數(shù)據(jù)造成了事務(wù)A的查詢(xún)結(jié)果和實(shí)時(shí)不符,像出現(xiàn)“幻覺(jué)”一樣。造成幻讀的操作是delete或insert
創(chuàng)作不易,轉(zhuǎn)載請(qǐng)注明文章來(lái)源為www.full-satcker.com
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!