MySQL常務事務的特性

2021-09-27 06:57:41 字數 1246 閱讀 6391

原子性(atomicity):乙個事務必須視為乙個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾,對於乙個事務來說,不可能只執行其中的一部分操作,這就是事務的原子性。

一致性(consistency):資料庫總數從乙個一致性的狀態轉換到另乙個一致性的狀態。

隔離性(isolation):乙個事務所做的修改在最終提交以前,對其他事務是不可見的。

永續性(durability):一旦事務提交,則其所做的修改就會永久儲存到資料庫中。此時即使系統崩潰,修改的資料也不會丟失。

read uncommitted

字面意思是讀未提交,乙個事務可以讀取另乙個未提交事務的資料,即出現髒讀

read committed

字面意思是讀提交,乙個事務要等另乙個事務提交後才能讀取資料,也就是不可重複讀(每次讀取的結果不一樣)。若有事務對資料進行更新(update)操作時,讀操作事務要等待這個更新操作事務提交後才能讀取資料,可以解決髒讀問題。

repeatable read

字面意思是重複讀,就是在開始讀取資料(事務開啟)時,不再允許修改操作,也就是幻讀。重複讀可以解決不可重複讀問題。不可重複讀對應的是修改,即update操作。但是可能還會有幻讀問題。因為幻讀問題對應的是插入insert操作,而不是update操作。

serializable

字面意思序列化,serializable 是最高的事務隔離級別,在該級別下,事務序列化順序執行,可以避免髒讀、不可重複讀與幻讀。但是這種事務隔離級別效率低下,比較耗資料庫效能,一般不使用。

大多數資料庫預設的事務隔離級別是read committed,比如sql server , oracle。mysql的預設隔離級別是repeatable read。

以上4種事務隔離級別,由低到高分別為read uncommitted 、read committed 、repeatable read 、serializable 。

髒讀:指乙個執行緒中的事務讀取到了另外乙個執行緒中未提交的資料。

不可重複讀(虛讀):指乙個執行緒中的事務讀取到了另外乙個執行緒中提交的update的資料。

幻讀:指乙個執行緒中的事務讀取到了另外乙個執行緒中提交的insert的資料。

MySQL事務的特性

事務具有很嚴格的定義,必須同時滿足4個特徵 原子性 一致性 隔離性 永續性,也就是人們常說的acid標準 原子性,是指乙個事務必須被視為,乙個不可分割的最小工作單元,只有事務中所有的資料庫操作都執行成功,才算整個事務執行成功 事務中,如果有任何乙個sql語句執行失敗,已經執行成功的sql語句,也必須...

MySQL事務特性

目錄 什麼是事務?acid 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 事務併發問題 事務隔離級別 一組原子性的sql指令集合,要麼全部執行成功,要麼全部執行失敗。整個事務所有操作要麼全部提交成功,要麼全部失敗回滾,不可能只成...

mysql的事物特性 MySQL事務特性及隔離級別

事務的4個特性 在mysql中,innodb和bdb型別表可以支援事務。通過innodb和bdb型別表,mysql事務能夠完全滿足事務安全的acid測試,但是並不是所有表型別都支援事務,如myisam型別表就不能支援事務,只能通過偽事務對錶實現事務處理。acid指出每個事務型rdbms必須遵守的4個...