mysql事務的隔離級別

2021-09-27 03:40:54 字數 1660 閱讀 9552

事務隔離級別(transaction isolation levels):隔離級別就是對事務併發控制的四個等級。分為

1  序列化(serializable)

2  可重複讀(repeatable read)

3  讀已提交(read commited)

4  讀未提交(read uncommited):

設定隔離級別,set transaction isolation level read uncommited;

read uncommitted:當前事務能讀到其他事務未提交的資料,這種情況叫髒讀。

set transation isolation level read commited;

read committed:在當前事務過程中,不可能產生髒讀。可能讀到不同的資料(比如兩個事務,乙個事務剛剛更新一條資料,另乙個事務查詢的結果還是舊資料,但是一旦提交,同樣的查詢語句,卻顯示出來不同的結果),這種情況叫不可重複讀。

set transation isolation level serializable;

serializable:這種隔離界別表示,在當前事務執行過程中,其他事務只能等待,事務不能併發執行

set transaction isolation level repeatable read;

repeatable read:可重複讀。

可重複讀業務情景:

張三用其智慧型手機的手機***端查詢其招行帳戶餘額為300元,他準備用其中的200去搶購乙個商品,在他沒付款之前他的老婆取走100元,他再次檢視 了一下餘額,還是300元,他花了200支付了商品,在支付完後,他再次查了一下餘額,竟然發現賬戶裡一毛錢都沒有啦!

在當前事務過程中,只要不執行更新操作,那麼你查到的永遠是同樣的結果,但是一旦執行更新操作,別的事務的操作會影響到此事務。

可重複讀:查詢的結果是從快取中取出,更新的操作是對資料庫的更新。

讀未提交資料read uncommitted:能檢視到其它事務還未提交的資料,可能導致髒、幻、不可重複讀

讀已提交資料read committed:只能查到其它事務已提交的資料,而未提交的資料是看不到的。可防止髒讀,但幻讀和不可重複讀仍可發生

可重複讀取repeatable read:乙個事務讀取的資料在整個事務過程中,看到的一直不變,看不到其它事務對這些資料的更新,.可防止髒讀,不可重複讀,但幻讀可能發生

序列化serializable:同一db上的事務只能序列執行,不能併發執行。不會發生髒讀、不可重複讀和幻讀

mysql預設的隔離級別為repeatable_read

sqlserver 預設的隔離級別為read commited

oracle 資料庫支援read committed和serializable兩種事務隔離性級別,不支援read uncommitted和repeatable read這兩種隔離性級別,oracle資料庫預設使用的事務隔離性級別卻是read committed

髒讀:乙個事務讀取了另乙個事務改寫但還未提交的資料,如果這些資料被回滾,則讀到的資料是無效的。

不可重複讀:在同一事務中,多次讀取同一資料返回的結果有所不同。換句話說就是,後續讀取可以讀到另一事務已提交的更新資料。

可重複讀:在同一事務中多次讀取資料時,能夠保證所讀資料一樣,也就是,後續讀取不能讀到另一事務已提交的更新資料。

幻讀:在當前事務過程中,在兩次查詢之間,做了更新,就有可能產生

mysql隔離級別 MySQL 事務隔離級別

mysql innodb所提供的事務滿足acid的要求,事務是通過事務日誌中的redo log和undo log來實現原子性 undo log 一致性 undo log 永續性 redo log 事務通過鎖機制實現隔離性。1 事務隔離級別與實現read uncommitted 讀未提交 read c...

mysql事務隔離級別詳解 事務的隔離級別詳解

事務的隔離級別 在資料庫操作中,為了有效保證併發讀取資料的正確性,提出的事務隔離級別。問題的提出 資料庫是要被廣大客戶所共享訪問的,那麼在資料庫操作過程中很可能出現以下幾種不確定情況。更新丟失 兩個事務都同時更新一行資料,乙個事務對資料的更新把另乙個事務對資料的更新覆蓋了。這是因為系統沒有執行任何的...

MySQL事務隔離級別

sql標準定義了4類隔離級別,包括了一些具體規則,用來限定事務內外的哪些改變是可見的,哪些是不可見的。低階別的隔離級一般支援更高的 併發處理,並擁有更低的系統開銷。read uncommitted 讀取未提交內容 在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。本隔離級別很少用於實際應用,...