數(shù)據(jù)庫事務(wù)基礎(chǔ)

1.事務(wù)的特性(ACID)

  1. A(Atomicity)原子性:在一個事務(wù)中的操作要么都成功要么都失敗。
  2. C(Consistency)連續(xù)性:
  3. I(Isolation)隔離性:一個事務(wù)不能被另一個事務(wù)所影響。
  4. D(Durability)持久性:一個事務(wù)被提交之后對數(shù)據(jù)庫的改變是永久性的。

2.事務(wù)的隔離級別

商品表
  1. 讀未提交(Read uncommitted)


    讀未提交
  • 事務(wù)1和事務(wù)2同時開始,事務(wù)2能讀取到事務(wù)1未提交之前的數(shù)據(jù),如果事務(wù)1執(zhí)行失敗回滾,那事務(wù)2讀取到的就是臟數(shù)據(jù)
  1. 讀已提交(Read commited)


    讀已提交
  • 事務(wù)2只能讀取到事務(wù)1提交的數(shù)據(jù),解決了臟讀問題。
  • 事務(wù)1和事務(wù)2同時開始,事務(wù)2查詢了數(shù)據(jù),事務(wù)1對數(shù)據(jù)進(jìn)行修改(刪除)之后,事務(wù)2再次查詢數(shù)據(jù),兩次結(jié)果不一致,這就是不可重復(fù)讀
  1. 可重復(fù)讀(Repeatable Read)


    可重復(fù)讀
  • 事務(wù)2和事務(wù)1同時開始,事務(wù)2在事務(wù)1更新/刪除數(shù)據(jù)并提交之后,讀取到的數(shù)據(jù)是一致的,解決了不可重復(fù)讀
  • 事務(wù)1和事務(wù)2同時開始,事務(wù)1首先查找所有數(shù)量為30的商品,事務(wù)2再此之后插入一條數(shù)量為30的商品,事務(wù)1再次查找數(shù)量為30的商品,兩次查詢結(jié)果不一致。這就是幻讀。
  1. 串行化(Serializable)


    串行化
  • 事務(wù)1和事務(wù)2同時啟動,事務(wù)1查找數(shù)量為30的商品,之后事務(wù)2插入/刪除一條數(shù)量為30的商品,但是被阻塞了,事務(wù)1再次查找數(shù)量為30的商品,并提交事務(wù)。事務(wù)2才繼續(xù)執(zhí)行,解決了幻讀問題。

總結(jié)

從以上案例看來,數(shù)據(jù)庫事務(wù)解決了幾個問題

  1. 臟讀:一個事務(wù)可以讀取到另一個事務(wù)尚未提交的數(shù)據(jù),如果該數(shù)據(jù)回滾,那么讀取的數(shù)據(jù)就沒有意義。
  2. 不可重復(fù)讀:一個事務(wù)在執(zhí)行期間多次查詢同一條數(shù)據(jù),但是查詢結(jié)果不一致。
  3. 幻讀:一個事務(wù)在執(zhí)行期間查詢多條數(shù)據(jù),但是查詢結(jié)果不一致。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容