spring之事務(wù)詳解

一、事務(wù)的特性(ACID)

1、原子性(Atomicity)

原子性是指事務(wù)包含的所有操作要么全部成功函匕,要么全部失敗回滾。

2仅叫、一致性(Consistency)

一致性是指事務(wù)必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變換到另一個(gè)一致性狀態(tài),也就是說(shuō)一個(gè)事務(wù)執(zhí)行之前和執(zhí)行之后都必須處于一致性狀態(tài)糙捺。

3诫咱、隔離性(Isolation)

隔離性是當(dāng)多個(gè)用戶并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),比如操作同一張表時(shí)洪灯,數(shù)據(jù)庫(kù)為每一個(gè)用戶開(kāi)啟的事務(wù)坎缭,不能被其他事務(wù)的操作所干擾,多個(gè)并發(fā)事務(wù)之間要相互隔離签钩。

4掏呼、持久性(Durability)

持久性是指一個(gè)事務(wù)一旦被提交了,那么對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的改變就是永久性的铅檩,即便是在數(shù)據(jù)庫(kù)系統(tǒng)遇到故障的情況下也不會(huì)丟失提交事務(wù)的操作憎夷。

二、事務(wù)的問(wèn)題

1昧旨、臟讀(Dirty Reads)

一個(gè)事務(wù)正在對(duì)數(shù)據(jù)進(jìn)行更新操作拾给,但是更新還未提交,另一個(gè)事務(wù)這時(shí)也來(lái)操作這組數(shù)據(jù)兔沃,并且讀取了前一個(gè)事務(wù)還未提交的數(shù)據(jù)蒋得,而前一個(gè)事務(wù)如果操作失敗進(jìn)行了回滾,后一個(gè)事務(wù)讀取的就是錯(cuò)誤數(shù)據(jù)粘拾,這樣就造成了臟讀窄锅。

2创千、不可重復(fù)讀(Non-Repeatable Reads)

一個(gè)事務(wù)多次讀取同一數(shù)據(jù)缰雇,在該事務(wù)還未結(jié)束時(shí)入偷,另一個(gè)事務(wù)也對(duì)該數(shù)據(jù)進(jìn)行了操作,而且在第一個(gè)事務(wù)兩次次讀取之間械哟,第二個(gè)事務(wù)對(duì)數(shù)據(jù)進(jìn)行了更新疏之,那么第一個(gè)事務(wù)前后兩次讀取到的數(shù)據(jù)是不同的,這樣就造成了不可重復(fù)讀暇咆。

3锋爪、幻讀(Phantom Reads)

第一個(gè)數(shù)據(jù)正在查詢符合某一條件的數(shù)據(jù),這時(shí)爸业,另一個(gè)事務(wù)又插入了一條符合條件的數(shù)據(jù)其骄,第一個(gè)事務(wù)在第二次查詢符合同一條件的數(shù)據(jù)時(shí),發(fā)現(xiàn)多了一條前一次查詢時(shí)沒(méi)有的數(shù)據(jù)扯旷,仿佛幻覺(jué)一樣拯爽,這就是幻讀。

三钧忽、事務(wù)的傳播行為

1毯炮、PROPAGATION_REQUIRED(默認(rèn))

如果存在一個(gè)事務(wù),則支持當(dāng)前事務(wù)耸黑。如果沒(méi)有事務(wù)則開(kāi)啟一個(gè)新的事務(wù)桃煎。

2、PROPAGATION_MANDATORY

支持當(dāng)前事務(wù)大刊,如果當(dāng)前沒(méi)有事務(wù)为迈,就拋出異常。

3缺菌、PROPAGATION_NEVER

以非事務(wù)方式執(zhí)行曲尸,如果當(dāng)前存在事務(wù),則拋出異常男翰。

4另患、PROPAGATION_NOT_SUPPORTED

以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù)蛾绎,就把當(dāng)前事務(wù)掛起昆箕。

5、PROPAGATION_REQUIRES_NEW

新建事務(wù)租冠,如果當(dāng)前存在事務(wù)鹏倘,把當(dāng)前事務(wù)掛起。

6顽爹、PROPAGATION_SUPPORTS

支持當(dāng)前事務(wù)纤泵,如果當(dāng)前沒(méi)有事務(wù),就以非事務(wù)方式執(zhí)行镜粤。

7捏题、PROPAGATION_NESTED

支持當(dāng)前事務(wù)玻褪,新增Savepoint點(diǎn),與當(dāng)前事務(wù)同步提交或回滾公荧。

四:事務(wù)的隔離級(jí)別

0带射、DEFAULT (默認(rèn))

這是一個(gè)PlatfromTransactionManager默認(rèn)的隔離級(jí)別,使用數(shù)據(jù)庫(kù)默認(rèn)的事務(wù)隔離級(jí)別.另外四個(gè)與JDBC的隔離級(jí)別相對(duì)應(yīng)

1循狰、READ_UNCOMMITTED (讀未提交)

這是事務(wù)最低的隔離級(jí)別窟社,它允許另外一個(gè)事務(wù)可以看到這個(gè)事務(wù)未提交的數(shù)據(jù)。這種隔離級(jí)別會(huì)產(chǎn)生臟讀绪钥,不可重復(fù)讀和幻像讀灿里。

2、READ_COMMITTED (讀已提交)

保證一個(gè)事務(wù)修改的數(shù)據(jù)提交后才能被另外一個(gè)事務(wù)讀取程腹。另外一個(gè)事務(wù)不能讀取該事務(wù)未提交的數(shù)據(jù)钠四。這種事務(wù)隔離級(jí)別可以避免臟讀出現(xiàn),但是可能會(huì)出現(xiàn)不可重復(fù)讀和幻像讀跪楞。

3缀去、REPEATABLE_READ (可重復(fù)讀)

這種事務(wù)隔離級(jí)別可以防止臟讀,不可重復(fù)讀甸祭。但是可能出現(xiàn)幻像讀缕碎。它除了保證一個(gè)事務(wù)不能讀取另一個(gè)事務(wù)未提交的數(shù)據(jù)外,還保證了不可重復(fù)讀

4池户、SERIALIZABLE(串行化)

這是花費(fèi)最高代價(jià)但是最可靠的事務(wù)隔離級(jí)別咏雌。事務(wù)被處理為順序執(zhí)行。除了防止臟讀校焦,不可重復(fù)讀外赊抖,還避免了幻像讀。

五寨典、隔離級(jí)別解決事務(wù)并行引起的問(wèn)題

臟讀 不可重復(fù)讀 幻讀
Serializable 不會(huì) 不會(huì) 不會(huì)
REPEATABLE READ 不會(huì) 不會(huì) 會(huì)
READ COMMITTED 不會(huì) 會(huì) 會(huì)
Read Uncommitted 會(huì) 會(huì) 會(huì)

注:非原創(chuàng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末氛雪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子耸成,更是在濱河造成了極大的恐慌报亩,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件井氢,死亡現(xiàn)場(chǎng)離奇詭異弦追,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)花竞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)劲件,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事零远∶绶郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵遍烦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我躺枕,道長(zhǎng)服猪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任拐云,我火速辦了婚禮罢猪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叉瘩。我一直安慰自己膳帕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布薇缅。 她就那樣靜靜地躺著危彩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泳桦。 梳的紋絲不亂的頭發(fā)上汤徽,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音灸撰,去河邊找鬼谒府。 笑死,一個(gè)胖子當(dāng)著我的面吹牛浮毯,可吹牛的內(nèi)容都是我干的完疫。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼债蓝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼壳鹤!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起饰迹,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤器虾,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蹦锋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體兆沙,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年莉掂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葛圃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖库正,靈堂內(nèi)的尸體忽然破棺而出曲楚,到底是詐尸還是另有隱情,我是刑警寧澤褥符,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布龙誊,位于F島的核電站,受9級(jí)特大地震影響喷楣,放射性物質(zhì)發(fā)生泄漏趟大。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一铣焊、第九天 我趴在偏房一處隱蔽的房頂上張望逊朽。 院中可真熱鬧,春花似錦曲伊、人聲如沸叽讳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岛蚤。三九已至,卻和暖如春懈糯,著一層夾襖步出監(jiān)牢的瞬間灭美,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工昂利, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留届腐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓蜂奸,卻偏偏與公主長(zhǎng)得像犁苏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扩所,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容