資料庫事物

2021-10-04 11:11:35 字數 1051 閱讀 5053

何為資料庫事物

資料庫事務(transaction)是乙個或多個資料操作的集合,這些操作要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位。以begin開始,以commitrollback結束。

事物四個特徵acid
tips:

資料庫管理系統採用日誌來保證事務的原子性、一致性和永續性。日誌記錄了事務對資料庫所做的更新,如果某個事務在執行過程中發生錯誤,就可以根據日誌,撤銷事務對資料庫已做的更新,使資料庫退回到執行事務前的初始狀態。

資料庫管理系統採用鎖機制來實現事務的隔離性。當多個事務同時更新資料庫相同的資料時,只允許持有鎖的事務能更新該資料,其他事務必須等待,直到前乙個事務釋放了鎖,其他事務才有機會更新該資料。

事物隔離級別

事物併發會引發的問題

tips:

幻讀和不可重複讀都是讀取了另一條已經提交的事務(這點就髒讀不同),所不同的是不可重複讀查詢的都是同乙個資料項,而幻讀針對的是一批資料整體(比如資料的個數)。

事物隔離級別

事物隔離級別

髒讀不可重複讀

幻讀read uncommitted 讀未提交

可能可能可能

read committed 讀提交

不可能可能可能

repeatable read 可重複讀

不可能不可能

可能

serializable 序列化

不可能不可能

不可能樂觀鎖

總是假設操作不會發生併發問題(不會有其他執行緒修改資料),所以不會上鎖。但是在更新時會判斷其他執行緒在這之前有沒有對資料進行修改。

悲觀鎖
總是假設操作會發生併發問題(有其他執行緒修改資料),操作都會上鎖。悲觀鎖影響併發效能,需要謹慎使用。

資料庫事物

事務 sqlite預設一條語句就是乙個事務,有多少條資料就有多少次磁碟操作,比如10條計入就要10次讀寫磁碟操作。解決方法 新增事務處理,把10條操作看做乙個事務。1.sqlitedatabase 方法 public void begintransaction 開始事務 注意 事務可以巢狀,通過se...

資料庫事物

1.事物處理順序事物的sql語句 用事務 事務開始和事物提交 sql語句包裹主要執行的sql語句 事物處理可以保證一組相關操作要麼都成功,要麼都失敗.1.把事務開啟 2.寫你要執行語句 3.把事務進行提交 4.把事務回滾 rollback 遇到斷電 事務沒有提交 那麼事務會自動回滾 例如 begin...

資料庫事物

事物的概念 使用者在進行資料庫操作時的乙個資料庫操作系列。對於該操作序列中的操作,要麼全部執行,要麼全部不執行。所有的操作是乙個整體,不可分割。與事物相關的概念有事物提交和事物回滾。事物提交是將事物中對資料的更新提交到資料庫中,如果執行正常則事物結束。否則在發生異常時,事物將回滾,將資料庫狀態還原到...