四、事務介紹和常見的隔離級別,傳播行爲
簡介:講解什麼是數據庫事務,常見的隔離級別和傳播行爲
一、介紹什麼是事務,單機事務,分佈式事務處理等
二、講解場景的隔離級別
Serializable: 最嚴格,串行處理,消耗資源大
Repeatable Read:保證了一個事務不會修改已經由另外一個事務讀取但未提交(回滾)的數據
Read Committed:大多數主流數據庫的默認事務等級
Read Uncommitted:保證了讀取過程當中不會讀取到非法數據。
三、講解常見的傳播行爲
PROPAGATION_REQUIRED--支持當前事務,若是當前沒有事務,就新建一個事務,最多見的選擇。
PROPAGATION_SUPPORTS--支持當前事務,若是當前沒有事務,就以非事務方式執行。
PROPAGATION_MANDATORY--支持當前事務,若是當前沒有事務,就拋出異常。
PROPAGATION_REQUIRES_NEW--新建事務,若是當前存在事務,把當前事務掛起, 兩個事務之間沒有關係,一個異常,一個提交,不會同時回滾
PROPAGATION_NOT_SUPPORTED--以非事務方式執行操做,若是當前存在事務,就把當前事務掛起。
PROPAGATION_NEVER--以非事務方式執行,若是當前存在事務,則拋出異常數據庫
事務的場景
對於多數據庫的場景。分佈式事務
分佈式的事務通常用消息隊列去解決
二、講解場景的隔離級別
Serializable: 最嚴格,串行處理,消耗資源大
Repeatable Read:保證了一個事務不會修改已經由另外一個事務讀取但未提交(回滾)的數據
Read Committed:大多數主流數據庫的默認事務等級
Read Uncommitted:保證了讀取過程當中不會讀取到非法數據。分佈式
PROPAGATION_REQUIRED--支持當前事務,若是當前沒有事務,就新建一個事務,最多見的選擇。
PROPAGATION_SUPPORTS--支持當前事務,若是當前沒有事務,就以非事務方式執行。
PROPAGATION_MANDATORY--支持當前事務,若是當前沒有事務,就拋出異常。
PROPAGATION_REQUIRES_NEW--新建事務,若是當前存在事務,把當前事務掛起, 兩個事務之間沒有關係,一個異常,一個提交,不會同時回滾
PROPAGATION_NOT_SUPPORTED--以非事務方式執行操做,若是當前存在事務,就把當前事務掛起。
PROPAGATION_NEVER--以非事務方式執行,若是當前存在事務,則拋出異常
blog