事務(一):概念、原理及特性
阿新 • • 發佈:2019-02-12
一、事務的概念:一組不可被分割執行的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)
一旦事務提交,資料就會持久化在資料庫中,不可能再被回滾的。(執行成功後必須全部寫入磁碟)