事務的四大特性(acid)
1.原子性(atomicity):乙個事務必須視為乙個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾,對於乙個事務來說,不可能只執行其中的一部分操作,這就是事務的原子性。
2.一致性(consistency):資料庫總數從乙個一致性的狀態轉換到另乙個一致性的狀態。
3.隔離性(isolation):乙個事務所做的修改在最終提交以前,對其他事務是不可見的。
4.永續性(durability):一旦事務提交,則其所做的修改就會永久儲存到資料庫中。此時即使系統崩潰,修改的資料也不會丟失。
資料庫事務的隔離級別有4種,由低到高分別為read uncommitted 、read committed 、repeatable read 、serializable。而且,在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。下面通過事例一一闡述它們的概念與聯絡。
read uncommitted
讀未提交,顧名思義,就是乙個事務可以讀取另乙個未提交事務的資料。
read committed
讀提交,顧名思義,就是乙個事務要等另乙個事務提交後才能讀取資料。
repeatable read
重複讀,就是在開始讀取資料(事務開啟)時,不再允許修改操作
分析:重複讀可以解決不可重複讀問題。寫到這裡,應該明白的一點就是,不可重複讀對應的是修改,即update操作。但是可能還會有幻讀問題。因為幻讀問題對應的是插入insert操作,而不是update操作。
serializable 序列化
serializable 是最高的事務隔離級別,在該級別下,事務序列化順序執行,可以避免髒讀、不可重複讀與幻讀。但是這種事務隔離級別效率低下,比較耗資料庫效能,一般不使用。
值得一提的是:大多數資料庫預設的事務隔離級別是read committed,比如sql server , oracle。mysql的預設隔離級別是repeatable read。
事務四大特性(ACID)
1.原子性 atomicity 化學中的原子指不可再分的基本微粒,資料庫中原子性強調事務是乙個不可分割的整體,事務開始後所有操作要麼全部成功,要麼全部失敗,不可能停滯在中間某個環節。如果事務執行過程 錯就會回滾到事務開始前的狀態,所有的操作就像沒有發生一樣不會對資料庫有任何影響。2.一致性 cons...
事務的四大特性(ACID)
原子性 一致性 隔離性 永續性 原子性 事務要麼全部成功,要麼全部回滾,只要有乙個不成功就回滾,一致性 一致性是指事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之前和執行之後都必須處於一致性狀態。如 a有300元,b有500元 一共是800元,a給b轉200,但是他們一...
事務的四大特性 ACID
acid 原子性 一致性 隔離性 永續性 就是一系列的操作,要麼都執行,要麼都不執行。當乙個事務發生異常的時候,就會通過回滾來保證原子性。在mysql中,原子性是通過回滾日誌來實現的,回滾日誌就是我們的操作的逆操作。事務提交之後一定會儲存到資料庫中,如果要回滾只能手動執行相反的操作了 事務的隔離性會...