1. 程式人生 > >事務(一):概念、原理及特性

事務(一):概念、原理及特性

一、事務的概念:一組不可被分割執行的SQL語句集合。

資料庫區分於檔案系統的重要特徵之一。

二、事務的基本原理及作用:

1、開啟事務的本質是——關閉了自動提交的功能,改為commit手動提交。

自動提交的特徵——儲存在服務的一個autocommit的變數裡,可修改。

設定自動提交模式:set autocommit=0;

2、如果不開啟事務,只執行一條sql語句,馬上就會持久化資料。即:普通執行就是立即提交,提交就會將結果持久化。

原因—— MySQL預設對sql語句的執行是自動提交。

每條sql語句都是同一事務的不同命令,之間由commit或rollback隔開。掉線後,無commit的事務都被放棄。

3、注意:事務類似於外來鍵約束,紙杯InnoDB引擎支援。

三、事務的四大特性(“ACID”原則)

1. 原子性(Atomicity)

事務的操作要麼完全成功,要麼就回滾。只有事務中所有的資料庫操作都執行成功,才能算整個事務成功。對資料庫要麼就是完全正確的資料,要麼就不記錄任何資料。

2. 一致性(Consistency)

事務發生前後,資料庫只能從一致性的一個狀態,轉換為另一個一致性的狀態。

在事務開始之前和結束之後,資料庫的完整性約束沒有被破壞。

3. 隔離性(Isolation)

多個事務併發操作時,事務之間不會相互影響。

每一個讀寫事務的物件對其他事務的操作物件相互分離。

即該事物提交之前,對其他事務都不可見(實現方法:鎖)

4. 永續性(Durability)

一旦事務提交,資料就會持久化在資料庫中,不可能再被回滾的。(執行成功後必須全部寫入磁碟)