MySql:事務的ACID特性

目錄

一、事務概念

二、事務的ACID特性


一、事務概念

定義:

一個事務是由一條或者多條SQL語句所組成的一個不可分割的單元,只有事務中的所有操作都正常執行完,那麼整個事務才能被提交到數據庫。如果有部分事務處理失敗,那麼事務就會回退到最初的狀態,因此:事務要麼成功,要麼全部失敗,不能出現部分成功和失敗。

事務可以設置保存點SavePoint,當事務發生執行錯誤的時候,可以選擇回滾到保存點。

基本概念:

  • 事務是一組SQL語句的執行,要麼全部成功,要麼全部失敗,不能出現部分成功和失敗,(保證事務執行時的原子操作
  • 事務的所有SQL全部執行完成,才能提交(commit)事務,把數據結果寫入磁盤上;
  • 在SQL執行過程中,有SQL出現錯誤,那麼事務就必須回滾(rollback)到初始狀態。
  • 事務也可以設置保存點SavePoint,當事務執行發生錯誤的時候,可以選擇回滾到保存點。

二、事務的ACID特性

每一個事務必須滿足下面四個特性

  • 事務的原子性(Atomic)
     事務是一個不可分割的整體,事務必須具有原子特性,即數據操作時,要麼全部執行,要麼全不執行,即不允許事務部分的完成。
  • 事務的一致性(Consistency)
    1)一個事務執行之前和執行之後,數據庫數據必須保持一致性狀態,數據庫的一致性狀態必須由用戶來負責,由併發控制機制實現。
    2)由併發操作帶來的數據不一致性問題包括數據髒讀、不可重複讀和幻讀
  • 事務的隔離性(Isolation)
    事務的隔離級別 用鎖來實現 (行鎖,作用於有索引的字段,沒有索引,便退化成表鎖)
    1)當兩個或者多個事務併發執行時,爲保證數據的安全性,將一個事務內的操作與其他的事務的操作隔離起來,不被其他正在執行的事務看到。(eg:假如事務T1和T2併發操作時,對T1而言,T1要麼在T2執行完成之後執行,那麼T1是可以看到T2的執行的結果;T1要麼在T2執行之前完成,那麼T2 是可以看到T1的執行的結果
    2)隔離性使得每個事務的更新在它被提交之前,對其他事務都是不可見的。
  • 事物的持久性(Durability)
    事務完成(commit、rollback)之後,數據庫管理系統保證數據庫中的數據是永久性保存下來的, 即使數據庫出現故障,也能保證恢復數據。

 

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