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

原資料為 AAA。
使用者_1 開始了交易,並將資料更新為BBB。
使用者_2 開始了交易,並取出了使用者_1 尚未完成交易的資料,當執行當前交易。
解決
❗ 核心問題,B 事務可以讀取到 A事務尚未 commit 的資料。
必須限制 B 事務只能讀取尚未完成事務的資料,即為只能讀已經 commit 的資料。
透過 隔離模式 Read_Committed 解決。
Last updated
Was this helpful?