資料庫事務隔離級別

2021-07-30 06:26:51 字數 995 閱讀 8913

一、處理級

資料庫一般提供四種事務的隔離級別,來處理事務併發的問題:

readuncommited(未提交讀):沒有提交就可以讀取到資料,發出了insert,但沒有commit就可以讀取到;

readcommited(提交讀):只有提交後才可以讀,常用;

repeatableread(可重複讀):必需提交才能見到,讀取資料時資料被鎖住;

serialiazble(序列化讀):最高隔離級別,串型的,你操作完了,我才可以操作,併發性特別不好。

二、各個級別對異常的處理效果

readuncommited

對於髒讀、不可重複讀、更新丟失的問題都存在。

readcommited

處理了髒讀,不可重複讀的問題依然存在。

sqlserver和oracle預設的事務隔離級別是這個級別。

sqlserver查詢事務隔離級別在查詢中使用如下語句:

dbcc useroptions 

在sqlserver2000中沒有isolation level 這個條目,08資料庫中有。

repeatableread

處理方法是髒讀、不可重複讀的第一種情況,但是幻讀依然會存在。

mysql預設的事務隔離級別是這個級別。

查詢方法:

select @@tx_isolation

serialiazble

處理所有的異常。

三、總結

第乙個級別和第四個級別一般不用;

第二種級別和第三個級別是常用的級別,我們在使用事務的時候,一般採用資料庫自身的事務併發機制,處理好自己程式的事務即可,對資料的鎖定控制交給資料庫自身處理即可,不建議自己的程式加鎖來鎖定資料,除非特殊情況。

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...

資料庫事務隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable 這四個級別可以逐個解決髒讀 不可重複讀 幻讀 這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted re...