資料庫事務管理

2021-08-31 07:20:00 字數 607 閱讀 4514

一、事務的特性(acid)

二、3個問題

幻讀和不可重複讀看起來一樣,但鎖的機制不同,幻讀對應insert和delete 操作,不可重複讀對應update操作;具體說就是不可重複讀鎖定一行資料,是行鎖,幻讀鎖定整個條件區域,是序列鎖。

三、樂觀鎖和悲觀所

以上說的鎖,通過資料庫的鎖機制控制,鎖定後其他操作無法進行, 造成效率低下,叫做悲觀鎖;實際中mysql、oracle等資料庫使用的不是這樣,是通過標記資料的版本來實現的,每個資料都有乙個version,當操作的版本號大於資料庫儲存的版本號時,執行更新,所以,當鎖定的時候,還能進行其他操作,這叫樂觀鎖,相對悲觀鎖比較寬鬆。

四、事務的隔離級別

需要說明的是:

oracle只支援read committed 和 serializable這兩種事務隔離級別,其他的不支援。

級別髒讀

不可重複讀

幻想uncommitted

允許允許

允許committed

不允許允許

允許repeatable

不允許不允許

允許serializable

不允許不允許

不允許

Spring資料庫事務管理

事務 transaction 是併發控制的基本單位。所謂的事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。例如,銀行轉賬工作 從乙個賬號扣款並使另乙個賬號增款,這兩個操作要麼都執行,要麼都不執行,在關聯式資料庫中,乙個事務可以是一條sql語句 一組sql語句或整...

資料庫基礎3 事務管理

事務管理概述 事務 是乙個邏輯工作單元,它包括一系列的操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。資料庫系統必須以一種能避免引入不一致性的方式來管理事物的...

深入Spring資料庫事務管理

相關問題 一 transactional的失效問題 1.對於靜態 static 方法和非public方法,註解 transactional是失效的。2.自呼叫,就是乙個類的乙個方法去呼叫自身另外乙個方法的過程。如下 autowired private roledao roledao transact...