當我們說起原子性的時候,我們會說一系列的操作要麼成功,要麼失敗,來保證事務的原子的,但是我其實特點疑問,事務的原子性是怎麼實現的呢? 接下來我嘗試的去記錄我自己的理解。這個undo log 我自己的理解是這樣的,在我們運算元據之前,首先會將資料備份到乙個地方(記憶體中),如果我們進行了資料的修改,或者我們運算元據的時候斷電,或者我們反悔了,我們就利用undo log日誌的備份將資料恢復到事務之前的狀態
這個undo log是邏輯日誌,我是怎麼理解這個邏輯日誌的呢?我是這樣想的,我們對資料的操作最終要落在磁碟上的,但是對於我們的undo log 它是不會把我們的資料的修改放到磁碟當中的,為什麼這麼說呢? 我就在想,要是我修改一次資料,日誌就放到磁碟中,豈不就是修改過了嘛,就沒有原子性的意義了.
這個undo log的執行流程是怎麼樣的呢?
在事務中,比如我們修改或者刪除一條記錄,undo log 會記錄一條相反的操作,我們修改,日誌就會記錄對應一條修改之前的記錄,如果我們刪除,那麼undo log就會記錄一條新增記錄, 那這樣的執行流程,我們如果有什麼回滾操作,我們的日誌就會根據記錄,把這些資料恢復!
mysql原子性 MySQL事務的原子性
一 事務的acid特性 1 原子性 2 一致性 3 隔離性 4 永續性 二 對於事務的原子性 a 我們知道事務中的操作要麼都做要麼都不做。對於這一點許多人有錯誤的理解,我們來看乙個例子 1 mysql select from t4 id name 1 a 2 b 3 c 3 rows in set ...
事務的原子性
a想要從自己的帳戶中轉1000塊錢到b的帳戶裡。那個從a開始轉帳,到轉帳結束的這乙個過程,稱之為乙個事務。在這個事務裡,要做如下操作 1.從a的帳戶中減去1000塊錢。如果a的帳戶原來有3000塊錢,現在就變成2000塊錢了。2.在b的帳戶裡加1000塊錢。如果b的帳戶如果原來有2000塊錢,現在則...
事務的原子性
事務的原子性指的是,事務中包含的程式作為系統的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。原子性的意義是資料庫系統的基礎。也許有的人想大多數程式設計師都沒有需求去寫要求超長時間高穩定性 高健壯性執行的程式。我想這是不負責任的想法。不管你寫的是動態 嵌入式控制...