髒讀(Dirty Read)

如果一個事務還沒有 commit,卻讀得到已經更新的結果,這種情形就叫做 Dirty Read。

流程圖

原資料為 AAA。

使用者_1 開始了交易,並將資料更新為BBB。

使用者_2 開始了交易,並取出了使用者_1 尚未完成交易的資料,當執行當前交易。

解決

核心問題,B 事務可以讀取到 A事務尚未 commit 的資料

必須限制 B 事務只能讀取尚未完成事務的資料,即為只能讀已經 commit 的資料。

透過 隔離模式 Read_Committed 解決。

Last updated

Was this helpful?