ANSI/ISO SQL標準定義了4中事務隔離級別:未提交讀(read uncommitted)丸升,提交讀(read committed),重復讀(repeatable read)谤牡,串行讀(serializable)齿兔。
對于不同的事務,采用不同的隔離級別分別有不同的結果抒和。不同的隔離級別有不同的現(xiàn)象。主要有下面3種現(xiàn)在:
1彤蔽、臟讀(dirty read):一個事務可以讀取另一個尚未提交事務的修改數(shù)據(jù)摧莽。
2、非重復讀(nonrepeatable read):在同一個事務中顿痪,同一個查詢在T1時間讀取某一行镊辕,在T2時間重新讀取這一行時候,這一行的數(shù)據(jù)已經(jīng)發(fā)生修改蚁袭,可能被更新了(update)征懈,也可能被刪除了(delete)。
3揩悄、幻像讀(phantom read):在同一事務中受裹,同一查詢多次進行時候,由于其他插入操作(insert)的事務提交,導致每次返回不同的結果集棉饶。
不同的隔離級別有不同的現(xiàn)象厦章,并有不同的鎖定/并發(fā)機制,隔離級別越高照藻,數(shù)據(jù)庫的并發(fā)性就越差袜啃,4種事務隔離級別分別表現(xiàn)的現(xiàn)象如下表:
四種隔離級別舉例如下: