一文掌握Oracle、MySQL、DB2併發控制機制的異同

本文由 dbaplus 社羣授權轉載。

數據庫的併發控制機制,顧名思義,是用來控制數據庫的併發操作的機制。控制的目的是爲了保證數據完整和數據一致性。

何爲數據一致性?在數據庫的併發操作中,多個事務同時讀取同一份數據,要保證多個事務讀取的同一份數據是準確的。

可能數據的不一致更好理解。例如事務T1、T2同時更新餘額爲1000餘額表, T1減100元,更新餘額爲900元,T2減500元,更新餘額爲500元;在T2不知道T1已經更新的情況下直接把餘額更新爲500元,丟失了T1對餘額的更新,此時的數據不能反映真實情況,數據變得不一致。併發事務處理過程中,還可能出現事務T1修改了一條記錄,事務T2讀取該記錄後,事務T1被撤銷,此時T2讀取的數據就與數據庫中的數據不一致,該數據就爲“髒”數據。

因此併發操作中,需要確保事務的隔離性以保證數據的一致性。那麼如何確保事務的隔離性呢?接下來,我們將對DB2、MySQL和Oracle三種數據庫的併發控制機制進行比較分析。

數據庫的數據一致性支持機制:事務、鎖、日誌。

首先我們看看什麼是事務。

一、事務

事務:又稱爲交易,訪問數據庫系統的可恢復的最小單元。

1、事務的ACID

  • 原子性(Atomicity): 事務爲一個整體的工作單元,事務對數據庫的操作要麼全部執行,要麼全部取消;
  • 一致性(Consistency): 事務完成時,所有數據都保持一致狀態;
  • 隔離性(Isolation): 事務所做的修改必須與其他事務所做的修改隔離。事務查看數據時數據的狀態要麼爲其他事務修改之前要麼爲其他事務修改之後,不會爲中間狀態。即多個事務不能同時修改同一份數據;
  • 持久性(Durability): 事務提交後,對數據庫所做的修改會永久保存。

原文鏈接:【https://www.infoq.cn/article/8W3O4rdx2F3qRSJWSCS4】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章