mysql資料庫事務

2021-10-08 19:35:18 字數 1020 閱讀 4130

維基百科:

事務是資料庫管理系統(dbms)執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。

只有innodb和ndb

1、原子性(atomicity):事務中的全部操作在資料庫中是不可分割的,要麼全部完成,要麼全部不執行。

2、一致性(consistency):幾個並行執行的事務,其執行結果必須與按某一順序 序列執行的結果相一致。

3、隔離性(isolation):事務的執行不受其他事務的干擾,事務執行的中間結果對其他事務必須是透明的。

4、永續性(durability):對於任意已提交事務,系統必須保證該事務對資料庫的改變不被丟失,即使資料庫出現故障。

事務的acid特性是由關係資料庫系統(dbms)來實現的,dbms採用日誌來保證事務的原子性、一致性和永續性。日誌記錄了事務對資料庫所作的更新,如果某個事務在執行過程中發生錯誤,就可以根據日誌撤銷事務對資料庫已做的更新,使得資料庫回滾到執行事務前的初始狀態。

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

– on的時候會自動提交事務 off關閉自動提交事務,只要是提交了事務,鎖就會釋放

show variables like

'autocommit'

;

– 關閉當前會話自動提交事務

set @@autocommit=0

;

– 開啟事務

begin

;

– 執行修改sql 這時事務不會自動回滾

update test set

`name`

='郎'

where id =

'0001'

;

– 提交之後才會回滾

commit

;

MySQL資料庫事務

文章出處 只有innodb引擎支援事務,下邊的內容均以innodb引擎為預設條件 1 髒讀 2 不可重複讀 3 幻讀 1 讀未提交 read uncommitted 可能產生髒讀 不可重複讀 幻讀 2 讀已提交 read committed 避免了髒讀,可能產生不可重複讀 幻讀 3 可重複讀 rep...

mysql資料庫事務

原子性 乙個事務 transaction 中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節 一致性 在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞 隔離性 資料庫允許多個併發事務同時對其資料進行讀寫和修改的能力,隔離性可以防止多個事務併發執行時由於交叉執行而導致資料的不一致...

Mysql資料庫事務 備忘

一.設定mysql的事務級別 1 my.ini檔案中 read uncommitted,read committed,repeatable read,serializable transaction isolation read committed 2 啟動引數指定 mysqld transacti...