帶你瞭解資料庫中事務的ACID特性

Coder程式設計發表於2019-04-09

前言

前面我們介紹過資料庫中 帶你瞭解資料庫中JOIN的用法 帶你瞭解資料庫中group by的用法 的相關用法。本章節主要來介紹下資料庫中一個非常重要的知識點事務,也是我們專案中或面試中經常會遇到的知識點。如有錯誤還請大家及時指出~

涉及面試題:

  • 請講下你對事務的理解?
  • 講下事務有那幾大特性?

以下都是採用mysql資料庫

事務

事務(Transaction),是我們關係型資料庫中非常重要的一個概念,它要符合ACID特性。是由一組SQL語句組成的一個程式執行單元(Unit),該執行單元要麼成功Commit,要麼失敗Rollback。

事務

ACID特性

  • Atomicity
  • Consistency
  • Isolation
  • Durability

Atomicity(原子性)

原子性:指事務是一個不可再分割的工作單元,事務中的操作要麼都發生,要麼都不發生。 通俗的說:我們有一堆的事情,它要麼全做,要麼全都不做,不能只做一半。比如我們的銀行轉賬。我把錢轉給你,把我的錢扣掉,然後把你的錢加上去。不能只做一半,只把我的錢扣掉,你的錢沒有加上去。

原子性

Consistency(一致性)

一致性指事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。 通俗的說:我和你的錢加起來一共是2000,那麼不管我和你之間如何轉賬,轉幾次賬,事務結束後我們的錢相加起來應該還得是2000,這就是事務的一致性。

一致性

Isolation(隔離性)

隔離性指多個事務併發訪問時,事務之間是隔離的,一個事務不應該影響其它事務執行效果。 通俗的說:多個使用者併發訪問操作同一張表時,資料庫為每一個使用者開啟的事務,不能被其他事務的操作所干擾,多個併發事務之間要相互隔離。

資料庫定義了4個隔離的級別:

  • READ_UNCOMMITTED
  • READ_COMMITTED
  • REPEATABLE_READ
  • SERIALIZABLE

下篇文章我們將專門介紹事務的隔離性

Durability(永續性)

永續性指事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。 通俗的說:比如我將事務做完之後,這個結果是能持久下去的並能一直存下去。不管斷電還是其他情況。

永續性

關係型資料庫都實現了ACID這樣的一些事務特性。其中最關鍵的一點是Isolation(隔離性),互相不影響。

文末

本章節主要簡單介紹了資料庫中事務的ADID特性,下一章我們將詳細介紹事務隔離。 歡迎關注公眾號:Coder程式設計 獲取最新原創技術文章和相關免費學習資料,隨時隨地學習技術知識!

微信公眾號

推薦閱讀

帶你瞭解資料庫中JOIN的用法

帶你瞭解資料庫中group by的用法

一篇帶你讀懂TCP之“滑動視窗”協議

Github個人主頁目錄

Gitee個人主頁目錄

歡迎大家關注並Star~

相關文章