MySQL事務相關概念,特點

2021-10-08 13:21:09 字數 1546 閱讀 3416

1、事務的概念

事務:一組邏輯操作單元,使資料從一種狀態變換到另一種狀態。

事務處理(事務操作):保證所有事務都作為乙個工作單元來執行,即使出現了故障,都不能改變這種執行方式。當在乙個事務中執行多個操作時,要麼所有的事務都被提交(commit),那麼這些修改就永久地儲存下來;要麼資料庫管理系統將放棄所作的所有修改,整個事務回滾(rollback)到最初狀態。

為確保資料庫中資料的一致性,資料的操縱應當是離散的成組的邏輯單元:當它全部完成時,資料的一致性可以保持,而當這個單元中的一部分操作失敗,整個事務應全部視為錯誤,所有從起始點以後的操作應全部回退到開始狀態。

2、事務的特點

事務的acid(acid)屬性

(1) 原子性(atomicity)

原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。

(2)一致性(consistency)

事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態。

(3)隔離性(isolation)

事務的隔離性是指乙個事務的執行不能被其他事務干擾,即乙個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。

(4)永續性(durability)

永續性是指乙個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來的其他操作和資料庫故障不應該對其有任何影響

3、事物的使用

以第乙個 dml 語句的執行作為開始

以下面的其中之一作為結束:

commit 或 rollback 語句

ddl 或 dcl 語句(自動提交)

使用者會話正常結束

系統異常終了

set autocommit=0;#取消自動提交

start transaction;#開啟事務

rollback;#回滾事務

commit;#提交事務

4、資料庫的隔離級別

(1)對於同時執行的多個事務, 當這些事務訪問資料庫中相同的資料時, 如果沒有採取必要的隔離機制, 就會導致各種併發問題:

髒讀: 對於兩個事務 t1, t2, t1 讀取了已經被 t2 更新但還沒有被提交的字段. 之後, 若 t2 回滾, t1讀取的內容就是臨時且無效的.

不可重複讀: 對於兩個事務t1, t2, t1 讀取了乙個字段, 然後 t2 更新了該字段. 之後, t1再次讀取同乙個字段, 值就不同了.

幻讀: 對於兩個事務t1, t2, t1 從乙個表中讀取了乙個字段, 然後 t2 在該表中插入了一些新的行. 之後, 如果 t1 再次讀取同乙個表, 就會多出幾行.

(2)資料庫事務的隔離性: 資料庫系統必須具有隔離併發執行各個事務的能力, 使它們不會相互影響, 避免各種併發問題.

(3)乙個事務與其他事務隔離的程度稱為隔離級別. 資料庫規定了多種事務隔離級別, 不同隔離級別對應不同的干擾程度, 隔離級別越高, 資料一致性就越好, 但併發性越弱

mysql事務相關概念和操作

改變當前db use dbname mysql 事務處理主要有兩種方法 1 用 begin,rollback,commit來實現 begin 開始乙個事務 rollback 事務回滾 commit 事務確認 2 直接用 set 來改變 mysql 的自動提交模式 set autocommit 0 禁...

mysql事務總結 mysql事務特點總結

1.mysql事務有4個隔離級別,以及會出現的問題如下圖 2.髒讀 開啟事務a,b。事務a在還沒有提交的情況下,假如第一次查詢id 1的使用者的age 24。事務b執行了update 表 set age 100 where id 1 b事務並沒有提交,緊接著再次查詢id 1的使用者的age時,age...

事務相關的概念

1.什麼是事務 事務就是邏輯上的一組操作,組成事務的各個執行單元,操作要麼全都成功,要麼全都失敗.轉賬的例子 冠希給美美轉錢,扣錢,加錢。兩個操作組成了乙個事情!2.事務的特性 原子性 事務不可分割.一致性 事務執行的前後資料的完整性保持一致.隔離性 乙個事務執行的過程中,不應該受到其他的事務的干擾...