1. 程式人生 > 實用技巧 >資料庫併發控制

資料庫併發控制

事務

事務是一系列操作的封裝.

產生原因:有些操作之間是有關聯的,需要一次性來執行完畢,否則會出錯.

egg:銀行轉賬:從轉出方扣除 + 向轉入方進賬.

特點

原子性:要麼全做,要麼全不做,不能拆開來做.

一致性:執行前後資料都是一致的狀態(eg:轉賬前後兩個賬戶之和是一致的)

隔離性:事務之間是獨立進行的,互不影響

持續性:執行之後它的結果是持續的.

事務能夠更好地進行併發操作.

T1,T2代表事務(transaction)

不可重複讀:

在T1準備驗算的時候,T2把A的值更新成了70,導致驗算失敗.

髒資料:

70是一個臨時的資料,T1後來回滾恢復成了20,T2一直用的是70.

封鎖協議:

X鎖:寫鎖

S鎖:讀鎖

讀鎖加上去之後,別人還可以對資料加讀鎖,但不能加寫鎖;

寫鎖加上去之後,不能夠再加任何鎖.

一級:比如丟失更新的例子,T1在讀之前加鎖,寫回之後再解鎖

二級是在一級的基礎上.