Spring事物特性 隔離級別和傳播行為

2021-09-25 06:18:43 字數 1680 閱讀 7853

原子性(atomicity):強調事務的不可分割.;

一致性(consistency):事務的執行的前後資料的完整性保持一致.;

隔離性(isolation):乙個事務執行的過程中,不應該受到其他事務的干擾;

永續性(durability) :事務一旦結束,資料就持久到資料庫;

髒讀:a事物讀取到b事物未提交的資料,b事物的資料可能會被回滾,所以是不準確的;

不可重複讀:在乙個事物內兩次執行相同的查詢語句,但是得到的結果卻不一樣,期間沒有執行過任何ddl語句,像發生幻覺一樣;

幻讀:a事物對錶中的全部資料行進行修改,同時,b事物向表插入新的資料,這時,操作a事物的使用者發現表中還有沒有被修改的資料換行,向發生了幻覺一樣;

序號隔離級別

說明預設

isolation_default

這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別.

oracle(讀已提交) 、mysql(可重複讀)

讀未提交

isolation_read_uncommitted

這是事務最低的隔離級別,它充許另外乙個事務可以看到這個事務未提交的資料。

這種隔離級別會產生髒讀,不可重複讀和幻像讀。

讀已提交

isolation_read_committed

保證乙個事務修改的資料提交後才能被另外乙個事務讀取。

另外乙個事務不能讀取該事務未提交的資料。

可重複讀

isolation_repeatable_read

這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻像讀。

序列化isolation_serializable

這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。

除了防止髒讀,不可重複讀外,還避免了幻像讀。

序號

事務傳播特性

說明

1propagation_required

支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇。 2

propagation_supports

支援當前事務,如果當前沒有事務,就以非事務方式執行。 3

propagation_mandatory

支援當前事務,如果當前沒有事務,就丟擲異常。 4

propagation_requires_new

新建事務,如果當前存在事務,把當前事務掛起。 5

propagation_not_supported

以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。 6

propagation_never

以非事務方式執行,如果當前存在事務,則丟擲異常。 7

propagation_nested

如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則進行與propagation_required類似的操作。

事物的特性和隔離級別

一 事物的特性 acid 1.原子性 atomicity 原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。2.一致性 consistency 乙個事務中,事務前後資料的完整性必須保持一致。3.隔離性 isolation 事務的隔離性是指多個使用者併發訪問資料庫時,乙個使...

事物的特性和隔離級別

本篇講訴資料庫中事務的四大特性 acid 並且將會詳細地說明事務的隔離級 別。如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須要具備以下四個特性 原子性 atomicity 原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,這和前面兩 篇部落格介紹事務的功能是一樣的概念,因此事務的操作如...

Spring 的事物隔離級別

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