(學習筆記)事務的三種問題

2021-07-13 07:51:02 字數 354 閱讀 8783

事務在併發執行時有可能產生髒讀、不可重複讀、幻讀三種問題。這三種問題產生的原因歸根到底都是事務沒有按順序執行導致的資料錯亂。分別稱為3種問題只是情形不一樣,各自側重的問題現象不一樣而已。對於這3個概念這個文章總結得比較容易明白

髒讀:側重於讀到的資料是舊的。

不可重複讀:側重於在同乙個事務裡面重複讀時資料不同。

幻讀:側重於由於讀到的資料是舊的(也就是髒讀)導致事務裡的增刪操作不成功。

在sqlite裡面,事務的隔離級別都被設定成了最高的serializable,也就是可以防止事務的髒讀幻讀和不可重複讀。也就是sqlite執行事務時都是使用表級鎖。我們無需為sqlite的事務併發擔憂,我們要做的只是將操作放進各自的事務中。

MySQL學習筆記 事務

事務是用來保證一組資料庫的操作,要麼全部成功,要麼全部失敗 應用場景較多 如銀行轉賬,訂票等。mysql的事務是在引擎層支援的,原生的myisam不支援,因此主流使用innodb引擎。原子性顧名思義,不可分割,要麼所有指令都成功,要麼所有指令都失敗 一致性事務開始前和事務結束後,資料庫的狀態都是正常...

redis學習筆記 事務

事務是乙個單獨的隔離操作 事務中的所有命令都會序列化 按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。事務是乙個原子操作 事務中的命令要麼全部被執行,要麼全部都不執行。注 對於redis事務是否是原子性可以參考我個人挺支援作者觀點。命令說明 multi 標記乙個事務塊的開始...

sql學習筆記 事務

事務的特性 acid 原子性 乙個事物不可再分割,要麼都執行要麼都不執行 一致性 乙個事務的執行會使資料從乙個一致狀態切換到另乙個一致狀態 隔離性 乙個事務的執行不受其他事務的干擾 永續性 乙個事務一旦提交,則會永久的改變資料庫的資料 事務的建立 事務沒有明顯的開啟和結束的標記 開啟事務 set a...