前言
前面我們介紹過數據庫中 帶你了解數據庫中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編程
獲取最新原創技術文章和相關免費學習資料,隨時隨地學習技術知識!
推薦閱讀
歡迎大家關注並Star~