Spring事務隔離性和傳播性的概念

2021-07-31 08:06:36 字數 1160 閱讀 6031

事務隔離級別:他對其他事務所看到的資料變化進行控制。 

隔離級別 說明 

isolation_default 預設級別(對大多數資料庫來說就是isolation_read_committed) 

isolation_read_uncommitted 最低的隔離級別。事實上我們不應該隔離級別,因為在事務完成前,其他事務可以看到該事務所修改的資料。而在其他事務提交前,該事務也可以看到其他事務所做的修改。 

isolation_read_committed 大多數資料庫的預設級別。在事務完成前,其他事務無法看到該事務所修改的資料。遺憾的是,在該事務提交後,你就可以檢視其他事務插入活更新的資料。這意味著在事務的不同點上,如果其他事務修改資料,你會看到不同的資料。 

isolation_repeatable_read 該隔離級別確保如果在事務中查詢了某個資料集,你至少還能再次查詢到相同的資料集,即使其他事務修改了所查詢的資料。然而如果其他事務插入了新資料,你就可以查詢到該新插入的資料。 

isolation_serializable 代價最大、可靠性最高的隔離級別,所有的事務都是俺順序乙個接乙個的執行。 

傳播行為:指定了當**請求乙個新的事務時spring所做的事情。 

傳播行為 說明 

propagation_required 當前如果有事務,spring就會使用該事務;否則會開始乙個新事務。 

propagation_supports 當前如果有事務,spring就會使用該事務;否則不會開啟乙個新事務。 

propagation_mandatory 當前如果有事務,spring就會使用該事務;否則會丟擲異常。 

propagation_requires_new spring總會開始乙個新事務。如果當前有事務,則該事務掛起。 

propagation_not_supported spring不會執行事務中的**。**總是在非事務環境下執行,如果當期有事務,則該事務掛起。 

propagation_never 即使當前有事務,spring也會在飛事務環境下執行。如果當前有事務,則丟擲異常。 

propagation_nested 如果當前有事務,則在巢狀事務中執行。如果沒有,那麼執**況與propagation_required一樣。 

SpringBoot 事務隔離性和傳播性

spring中七種propagation類的事務屬性詳解 宣告式事務的第二個方面是隔離級別。隔離級別定義乙個事務可能受其他併發事務活動活動影響的程度。另一種考慮乙個事務的隔離級別的方式,是把它想象為那個事務對於事物處理資料的自私程度。在乙個典型的應用程式中,多個事務同時執行,經常會為了完成他們的工作...

spring 事務傳播性

大白話講就是,方法之間互相呼叫的時候,事務如何傳播,比如a 呼叫b b 的事務是和a 共用乙個事務 失敗一起提交 還是新事務 兩者事務互不影響 還是說b 不需要事務?這就是事務傳播性的意思。transactional public void methoda transactional public ...

事務隔離性與傳播性概述

什麼是事務?從四個關鍵概念談起 原子性 所有操作要麼都成功,要麼都失敗 一致性 事務不能違反完整性約束 比如雖然事務還未提交,但仍需遵守各種約束規則,這些規則是在事務提交之前而非在事務提交以後才生效!隔離性 乙個事務的效果,不影響正在同時執行的其它事務,那麼,不影響的程度如何呢?這個由隔離級別來定義...