帶你了解數據庫中事務的ACID特性


前言

前面我們介紹過數據庫中 帶你了解數據庫中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~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM