事務(wù)和隔離級(jí)別
事務(wù)的概念:事務(wù)是把對(duì)數(shù)據(jù)庫的一系列操作都看做一個(gè)整體,要么全部成功,要么全部失敗,利用事務(wù)我們可以保證數(shù)據(jù)庫的完整性,事務(wù)具有原子性。
隔離級(jí)別:隔離級(jí)別定義了事務(wù)與事務(wù)之間的隔離距離。
臟讀(dirty read):當(dāng)一個(gè)事務(wù)讀取另一個(gè)事務(wù)未提交的修改時(shí),產(chǎn)生臟讀。
(相關(guān)視頻教程推薦:mysql視頻教程)
不可重復(fù)讀(nonrepeated read):同一查詢?cè)谕皇聞?wù)中多次進(jìn)行,由于其他事務(wù)提交所做的修改,導(dǎo)致每次返回的結(jié)果不同,此時(shí)發(fā)生不可重復(fù)讀。
幻讀(phantom read):同一查詢?cè)谕皇聞?wù)中多次進(jìn)行,由于其他事務(wù)或提交所做的新增或刪除操作,導(dǎo)致每次得到的不同的結(jié)果集,此時(shí)發(fā)生幻讀。
不可重復(fù)讀側(cè)重于修改,幻讀側(cè)重于新增或者刪除。解決不可重復(fù)讀只需要鎖住滿足條件的行,解決幻讀需要鎖表。
MySQL的事務(wù)隔離級(jí)別有四種
讀未提交 (Read uncommitted)
讀已提交 (Read committed)
可重復(fù)讀 (Repeated read)
可串行化 (Serializable)
MySQL默認(rèn)隔離級(jí)別為:可重復(fù)讀 (Repeated read)
相關(guān)文章教程推薦:mysql教程