資料庫開發 認識事務

2021-07-03 23:42:19 字數 918 閱讀 9220

原子性(atomicity):

乙個事務是乙個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。

一致性(consistency):

事務必須是使資料庫從乙個一致性狀態變到另乙個一致性狀態。與原子性是密切相關的。

隔離性(isolation):

乙個事務的執行不能被其他事務干擾。即乙個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。

永續性(durability):

指乙個事務一旦提交,它對資料庫中資料的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

髒讀

場景:當事務a正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫。此時,事務b也在訪問了該資料(已被修改)。如果事務a進行了回滾,則事務b讀到就是不正確的資料(**紅色字型部分)。我們把這種情況稱為髒讀。

概述:事務b讀到了事務a未提交的更改資料,而事務a發生回滾。

不可重複讀

場景:事務a讀某一行資料,還沒結束之前,事務b也讀取了該資料並對其修改並提交,此時事務a再一次讀取了該資料,但兩次的讀取的資料不一致。

概述:事務a讀取了事務b修改提交的資料。前後兩次讀取的資料不一致。

幻讀

場景:事務a查詢出所有滿足where條件的資料後,事務b插入滿足此where條件的資料行,當事務a再次查詢所有資料行時,發現多出了一些資料行。

概述:事務a讀到了事務b新增的資料

附上一張簡單的總結圖:

後端開發眼中的資料庫 資料庫事務

乙個或一組sql語句組成乙個執行單元,要求同時成功或同時失敗。部分儲存引擎 innodb 可以支援事務功能。事務的特點 也就是事務的acid屬性 事務的建立 原始的增刪改查單條語句本身就是乙個事務,叫隱性事務,資料庫會自動建立。顯式事務就需要自行新增事務相關的指令了。開發過程中,框架會根據 的邏輯自...

資料庫認識

1 關係型資料 mysql 開源免費 表與表之間,欄位與字段有一定關聯性,是密不可分的 2 非關係型資料庫 redit mongodb,與關係型不同,沒有嚴格的關聯性 速度對比 非關係型資料的速度較快,基於記憶體 字段限制 關係型資料必須要有值 儲存穩定性 關係型資料庫比較穩定,一般不會丟失資料。比...

資料庫事務

事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...