MySql複習五.1 TCL語言

一,事務

一、含義

事務:一條或多條sql語句組成一個執行單位,一組sql語句要麼都執行要麼都不執行

二、特點(ACID)

A 原子性:一個事務是不可再分割的整體,要麼都執行要麼都不執行

C 一致性:一個事務可以使數據從一個一致狀態切換到另外一個一致的狀態

I 隔離性:一個事務不受其他事務的干擾,多個事務互相隔離的

D 持久性:一個事務一旦提交了,則永久的持久化到本地

 

三、事務的使用步驟 ★

瞭解:

隱式(自動)事務:沒有明顯的開啓和結束,本身就是一條事務可以自動提交,比如insert、update、delete

顯式事務:具有明顯的開啓和結束

 

使用顯式事務:

①開啓事務

set autocommit=0;

start transaction;#可以省略

 

②編寫一組邏輯sql語句

注意:sql語句支持的是insert、update、delete

 

設置回滾點:

savepoint 回滾點名;

 

③結束事務

提交:commit;

回滾:rollback;

回滾到指定的地方:rollback to 回滾點名;

四、併發事務

1、事務的併發問題是如何發生的?

多個事務 同時 操作 同一個數據庫的相同數據時

2、併發問題都有哪些?

髒讀:一個事務讀取了其他事務還沒有提交的數據,讀到的是其他事務“更新”的數據

不可重複讀:一個事務多次讀取,結果不一樣

幻讀:一個事務讀取了其他事務還沒有提交的數據,只是讀到的是 其他事務“插入”的數據

3、如何解決併發問題

通過設置隔離級別來解決併發問題

4、隔離級別

                                                     髒讀             不可重複讀          幻讀

read uncommitted:讀未提交          ×                        ×                       ×       

read committed:讀已提交            √                       ×                       ×

repeatable read:可重複讀          √                        √                       × 

serializable:串行化                     √                        √                      √

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章