事務是區分檔案儲存系統與nosql資料庫重要特性之一,其存在的意義就是為了保證正確執行crud操作,如何才算正確操作?於是引出了事務需要保證4個特性acid。隔離級別
髒讀 (dirty read)
不可重複讀(nonrepeatable read)
幻讀(phantom read)
未提交讀(read uncommitted)
可能可能
可能已提交讀(read committed)
不可能可能
可能可重複讀(repeatable)
不可能不可能
可能序列化(serializable)
不可能不可能
不可能
mysql資料庫,預設隔離級別為:可重複讀(repeatable)
類別 事務傳播型別
說明支援當前事務
propagation_required(必須的)
如果當前沒有事務,就新建乙個事務,如果已經存在乙個事務中,就加入到這個事務中,這是最常見的選擇
propagation_supports(支援)
支援當前事務,如果當前沒有事務,就以非事務方式執行
propagation_mandatory(強制)
使用當前事務,如果當前沒有事務,就丟擲異常
不支援當前事務
propagation_required_new(隔離)
新建事務,如果當前事務不存在,就把當前事務掛起
propagation_not_supports(不支援)
以非事務方式執行,如果當前事務存在,就把當前事務掛起
propagation_never(強制非事務)
以非事務方式執行,如果當前存在事務就丟擲異常
巢狀事務
propagation_nesrwd(巢狀事務)
如果當前存在事務,則在巢狀事務內執行,如果當前沒有事務,則執行與propagation_required類似的操作
新建連線
conn = new connention()
conn.setautocommit(false)
// 增,刪,改,查
conn.commit 或者 conn.rollback 或 conn.close()
之間都屬於同一事物
資料庫事務特性與隔離級別
原子性 atomicity 乙個事務包含多個操作,這些操作要麼全部執行,要麼全都不執行。實現事務的原子性,要支援回滾操作,在某個操作失敗後,回滾到事務執行之前的狀態。一致性 consistency 事務的一致性指的是在乙個事務執行之前和執行之後資料庫都必須處於一致性狀態 正確的狀態 這種特性稱為事務...
資料庫事務特性以及隔離級別
資料庫如果支援事務的操作,那麼就具備以下四個特性 原子性 atomicity 事務是資料庫的邏輯工作單位,事務中包括的諸操作要麼全做,要麼全不做。一致性 consistency 事務執行的結果必須是使資料庫從乙個一致性狀態變到另乙個一致性狀態。一致性與原子性是密切相關的。隔離性 isolation ...
資料庫事務特性及隔離級別
1.原子性 atomicity 2.一致性 consistency 3.隔離性 durability 4.永續性在高併發情況下,要完成保證事務acid特性是十分困難的,除非把所有的事務序列化執行,但是因此造成的影響將是系統效能大大降低。在實際開發中很多業務對事務的要求是不一樣的,因此資料庫設計了四種...