1. 事務並不專屬於mysql
2. 事務的ACID特性
1)原子性(atomicity)
一個事務必須被視為一個不可分割的最小工作單元,整個事務中得所有操作要麼全部提交成功,要麼全部失敗回滾,對於一個事務來講,不可能只執行其中的一部分
操作,這就是事務的原子性。
2)一致性(consistency)
數據庫的總是從一個一致性的狀態轉換到另一個一致性的狀態。
3)隔離性(isolation)
通常來說,一個事務所做的修改在最終提交之前,對其他事務是不可見的。
4)持久性(durability)
一旦事務提交,則其所做的修改就會永久保存到數據庫中。
3. 隔離級別
1)READ UNCOMMITTED(未提交讀)
在該級別,事務中得修改,即使沒提交,對其他事務也是可見的。
2)READ COMMITTED(提交讀)
在提交之前對其他事務都是不可見的
3)REPEATABLE READ(可重復讀)[mysql默認的事務隔離級別]
該級別保證了在同一個事務中多次讀取同樣的記錄的結果是一致的。
但是會產生幻讀得問題
4)SERIALIZABLE(可串行化)
該級別會在讀取的每一行數據上都加鎖
隔離級別 髒讀可能性 不可重復讀可能性 幻讀可能性 加鎖讀 READ UNCOMMITED Yes Yes Yes No READ COMMITTED No Yes Yes No REPEATABLE READ No No Yes No SERIALIZABLE No No No Yes