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

前言

前面咱們介紹過數據庫中 帶你瞭解數據庫中JOIN的用法 帶你瞭解數據庫中group by的用法 的相關用法。本章節主要來介紹下數據庫中一個很是重要的知識點事務,也是咱們項目中或面試中常常會遇到的知識點。若有錯誤還請你們及時指出~ mysql

涉及面試題:git

  • 請講下你對事務的理解?
  • 講下事務有那幾大特性?
如下都是採用mysql數據庫

事務

事務(Transaction),是咱們關係型數據庫中很是重要的一個概念,它要符合ACID特性。是由一組SQL語句組成的一個程序執行單元(Unit),該執行單元要麼成功Commit,要麼失敗Rollback。github

事務

ACID特性

  • Atomicity
  • Consistency
  • Isolation
  • Durability

Atomicity(原子性)

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

原子性

Consistency(一致性)

一致性指事務開始以前和事務結束之後,數據庫的完整性約束沒有被破壞。
通俗的說:我和你的錢加起來一共是2000,那麼無論我和你之間如何轉帳,轉幾回帳,事務結束後咱們的錢相加起來應該還得是2000,這就是事務的一致性。
一致性sql

Isolation(隔離性)

隔離性指多個事務併發訪問時,事務之間是隔離的,一個事務不該該影響其它事務運行效果。
通俗的說:多個用戶併發訪問操做同一張表時,數據庫爲每個用戶開啓的事務,不能被其餘事務的操做所幹擾,多個併發事務之間要相互隔離。數據庫

數據庫定義了4個隔離的級別:編程

  • READ_UNCOMMITTED
  • READ_COMMITTED
  • REPEATABLE_READ
  • SERIALIZABLE
下篇文章咱們將專門介紹事務的隔離性

Durability(持久性)

持久性指事務所對數據庫所做的更改便持久的保存在數據庫之中,並不會被回滾。
通俗的說:好比我將事務作完以後,這個結果是能持久下去的並能一直存下去。無論斷電仍是其餘狀況。
持久性微信

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

文末

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

微信公衆號

推薦閱讀

帶你瞭解數據庫中JOIN的用法 併發

帶你瞭解數據庫中group by的用法 學習

一篇帶你讀懂TCP之「滑動窗口」協議

Github我的主頁目錄

Gitee我的主頁目錄

歡迎你們關注並Star~

相關文章
相關標籤/搜索