1. 程式人生 > >MySQL的事務,容易懂,快來看看吧!

MySQL的事務,容易懂,快來看看吧!

事務

1.儲存引擎

  • Mysql核心儲存引擎。
  • Mysql5.5 預設採用innoDB。(my.ini)

 

2.什麼是事務

  • 事務用於保證資料的一致性,由一組DML操作組成,該組SQL語句要麼同時成功,要麼同時失敗。例如轉賬。

3.事務的四大特性(ACID)

  • 原子性: dml作為整體不可分割。
  • 一致性: 事務執行前後整體的狀態不變。
  • 隔離性: 併發事務之間互相獨立,不能相互干擾。
  • 永續性: 事務執行完畢,則資料將持久化到資料庫。

4.併發事務產生的問題

  • 髒讀:   一個事務讀到另一個事務未提交的資料。
  • 不可重複讀:   在一個事務t1執行過程中,由另一個事務t2對該資料進行修改並且提交了事務;t1再次進行處理時發現數據已經改變。
  • 幻讀(虛讀):   在一個事務t1的執行過程中,另一個事務t2對該資料進行增加刪除操作並且提交事務;t1再次讀取時發現數據不一致。

5.事務隔離級別

  • 讀未提交: 無法解決問題
  • 讀已提交: 解決髒讀問題。    Oracle
  • 可重複讀: 解決髒讀和不可重複讀問題。  Mysql
  • 序列化: 解決所有問題。

6.資料庫中事務語法

set autocommit=0;

start TRANSACTION;

update account set money=money-100 where aid = 1;

update account set money=money+100 where aid = 2;

#commit;

rollback;