mysql事務的隔離級別

2021-08-11 05:33:04 字數 1118 閱讀 6836

1.read uncommitted

讀未提交事務資料 會造成髒讀 隔離級別低

2.read committed

讀已提交的資料 避免髒讀 不能避免幻讀和重複讀的情況

3.repeatable read

可重複讀mysql預設事務隔離級別避免髒讀 避免幻讀和重複讀的情況

4.serializable

可序列化 最高隔離級別 她他會強制對事務進行排序,使之不會發生衝突。實際再每個讀的資料行加鎖,這個界別可能導致大量的超時現象和鎖競爭,實際很少使用。

髒讀就是指當乙個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外乙個事務也訪問這個資料,然後使用了這個資料。

是指在乙個事務內,多次讀同一資料。在這個事務還沒有結束時,另外乙個事務再修改資料。那麼第乙個事務兩次讀到的的資料可能是不一樣的,因此稱為是不可重複讀。

當某事物正在執行插入或刪除操作同時,第二個事物也在操作此表的資料,就會顯示有一行還未存在的資料,就像發生了幻覺一樣。

設定隔離級別

set session transaction isolation level repeatable read;

查詢隔離級別

1.不可重複讀

事務內兩次事務查詢內容不一致

2.重複讀 repeatable read

事務內兩次查詢內容保持一致

3.幻讀

事務內兩次查詢中資料條數不一致

4.可序列化

在每個讀的資料行上加上行鎖,使之不可能相互衝突,因此會導致大量的超時現象

開啟兩個視窗測試

1.設定隔離級別

第乙個視窗

第二個視窗

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 讀取未提交內容 在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。本隔離級別很少用於實際應用,...