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