MySql 事物的四大特性

2021-10-02 11:29:37 字數 900 閱讀 2678

就理解的四大特性如何實現進行一下分析。首先說:四大特性指的是哪四個特性:

根據定義,原子性是指乙個事務是乙個不可分割的工作單位,其中的操作要麼都做,要麼都不做。即要麼轉賬成功,要麼轉賬失敗,是不存在中間的狀態!

根據定義,隔離性是指多個事務併發執行的時候,事務內部的操作與其他事務是隔離的,併發執行的各個事務之間不能互相干擾。

根據定義,永續性是指事務一旦提交,它對資料庫的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

根據定義,一致性是指事務執行前後,資料處於一種合法的狀態,這種狀態是語義上的而不是語法上的。

是通過 innodb 的redo log 保證的。

在乙個事務中的每一次sql操作之後都會寫入乙個redo log到buffer中,在最後commit的時候,必須先將該事務的所有日誌寫入到redo log file進行持久化(這裡的寫入是順序寫的),待事務的commit操作完成才算完成。

優勢:順序寫入,比訪問磁碟檔案的隨機訪問速度快。

只需記錄更改的一小部分,體積小,畢竟只記錄了哪一頁修改了啥,因此體積小,刷盤快。

undo log名為回滾日誌,是實現原子性的關鍵,當事務回滾時能夠撤銷所有已經成功執行的sql語句,他需要記錄你要回滾的相應日誌資訊。

例如(1) 當你delete一條資料的時候,就需要記錄這條資料的資訊,回滾的時候,insert這條舊資料

(2) 當你update一條資料的時候,就需要記錄之前的舊值,回滾的時候,根據舊值執行update操作

(3) 當年insert一條資料的時候,就需要這條記錄的主鍵,回滾的時候,根據主鍵執行delete操作

undo log記錄了這些回滾需要的資訊,當事務執行失敗或呼叫了rollback,導致事務需要回滾,便可以利用undo log中的資訊將資料回滾到修改之前的樣子。

未完待續— ---

事物的四大特性

一 什麼是事務 事務是應用程式中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,乙個事務中的一系列的操作要麼全部成功,要麼乙個都不做。事務的結束有兩種,當事務中的所以步驟全部成功執行時,事務提交。如果其中乙個步驟失敗,將發生回滾操作,撤消撤消之...

事物的四大特性

一 什麼是事務 事務是應用程式中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,乙個事務中的一系列的操作要麼全部成功,要麼乙個都不做。事務的結束有兩種,當事務中的所以步驟全部成功執行時,事務提交。如果其中乙個步驟失敗,將發生回滾操作,撤消撤消之...

事物的四大特性(acid)

如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須要具備以下四個特性 原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,這和前面兩篇部落格介紹事務的功能是一樣的概念,因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響。一致性是指事務必須使資料庫從乙個一致性...