串行化(serializable)
- 隔離級別最高羞反,并發(fā)最低布朦。
- 在A|B兩者都開啟事務(wù)的前提下,A方對同一表的做修改昼窗,未提交該表會被加鎖是趴,B方進(jìn)行查詢會被阻塞,要么A提交澄惊,要么超時唆途,會顯示提交后的數(shù)據(jù)。所以隔離級別最高掸驱。
可重復(fù)讀(repeatable read)
- 隔離級別比串行化低肛搬,并發(fā)比串行化高。會出現(xiàn)幻讀毕贼。
- 在A|B兩者都開啟事務(wù)的前提下温赔,各自會生成一個開啟事務(wù)之前的快照,A方對同一表的做修改鬼癣,自己能看到對表的修改陶贼,A提交后B仍然看不到表的變化,B不做修改的話扣溺,B在提交之前查看表看到的都是自己開啟事務(wù)之前的狀態(tài)即快照骇窍,直至B提交才會看到其他人對表的修改,如果多出一條數(shù)據(jù)(A添加的)锥余,這就是幻讀現(xiàn)象腹纳。
讀已提交(read committed)
- 隔離級別比可重復(fù)讀低,并發(fā)比可重復(fù)讀高驱犹。會出現(xiàn)幻讀嘲恍、不可重復(fù)讀。
- 在A|B兩者都開啟事務(wù)的前提下雄驹,A修改表佃牛,B看不到修改,直至A提交医舆,B在未提交的前提下也會看到表的修改俘侠。如果A更新表中的某條數(shù)據(jù)而B在未修改的前提下看到就是不可重復(fù)讀象缀;同理A增加新的一條數(shù)據(jù),B查看到變化就是幻讀爷速。
讀未提交(read uncommitted)
隔離級別比讀已提交低央星,并發(fā)比讀已提交高。會出現(xiàn)幻讀惫东、不可重復(fù)讀莉给、臟讀。安全性最低廉沮。
在A|B兩者都開啟事務(wù)的前提下颓遏,A做任何修改,B都能看到滞时,都能看到A未提交前的修改叁幢,這也稱為臟讀。
臟讀漂洋、幻讀遥皂、不可重讀的區(qū)別
臟讀:當(dāng)前事務(wù)可以查看到別的事務(wù)未提交的數(shù)據(jù)(側(cè)重點在于別的事務(wù)未提交)。
幻讀:幻讀的表象與不可重讀的表象都讓人"懵逼"刽漂,很容易搞混,但是如果非要細(xì)分的話弟孟,幻讀的側(cè)重點在于新增和刪除贝咙。表示在同一事務(wù)中,使用相同的查詢語句拂募,第二次查詢時庭猩,莫名的多出了一些之前不存在數(shù)據(jù),或者莫名的不見了一些數(shù)據(jù)陈症。
不可重讀:不可重讀的側(cè)重點在于更新修改數(shù)據(jù)蔼水。表示在同一事務(wù)中,查詢相同的數(shù)據(jù)范圍時录肯,同一個數(shù)據(jù)資源莫名的改變了趴腋。