數據庫中的隔離屬性

隔離控制如何以及何時在數據庫中進行更改

隔離是數據庫事務屬性的組成部分。 它是ACID的第三個屬性(原子性,一致性,隔離性耐久性) ,這些屬性確保數據一致和準確。

隔離是數據庫級別的屬性,用於控制如何以及何時進行更改以及它們是否彼此可見。 隔離的目標之一是允許多個事務同時發生而不會影響彼此的執行。

隔離是如何工作的

例如,如果Joe在Mary發布不同事務的同時針對數據庫發出事務,則兩個事務都應以隔離的方式在數據庫上運行。 數據庫應該在執行Mary's之前執行Joe的整個事務,反之亦然。 這可以防止Joe的事務讀取作為Mary事務的一部分副作用而產生的中間數據,這些事務最終不會被提交給數據庫。 請注意隔離屬性不能確保哪個事務將首先執行,只是它們不會互相干擾。

隔離級別

有四個級別的隔離:

  1. 可串行化是最高級別,這意味著事務將在另一個事務啟動之前完成。
  2. 可重複讀取允許交易在交易開始後即被訪問,即使交易尚未完成。
  3. 讀取提交允許數據在數據提交到數據庫之後訪問,但不是在那之前。
  4. 未提交的讀取是最低級別的隔離,並允許在更改之前訪問數據。