最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL事務(wù)回滾的2個問題分析

 更新時間:2014年05月07日 08:58:16   作者:  
在事務(wù)中,每個正確的原子操作都會被順序執(zhí)行,直到遇到錯誤的原子操作,此時事務(wù)會將之前的操作進行回滾。回滾的意思是如果之前是插入操作,那么會執(zhí)行刪 除插入的記錄,如果之前是update操作,也會執(zhí)行update操作將之前的記錄還原

因此,正確的原子操作是真正被執(zhí)行過的。是物理執(zhí)行。

在當(dāng)前事務(wù)中確實能看到插入的記錄。最后只不過刪除了。但是AUTO_INCREMENT不會應(yīng)刪除而改變值。

1、為什么auto_increament沒有回滾?

因為innodb的auto_increament的計數(shù)器記錄的當(dāng)前值是保存在存內(nèi)存中的,并不是存在于磁盤上,當(dāng)mysql server處于運行的時候,這個計數(shù)值只會隨著insert改增長,不會隨著delete而減少。而當(dāng)mysql server啟動時,當(dāng)我們需要去查詢auto_increment計數(shù)值時,mysql便會自動執(zhí)行:SELECT MAX(id) FROM 表名 FOR UPDATE;語句來獲得當(dāng)前auto_increment列的最大值,然后將這個值放到auto_increment計數(shù)器中。所以就算 Rollback MySQL的auto_increament計數(shù)器也不會作負運算。

2、MySQL的事務(wù)對表操作的時候是否是物理操作?

MySQL的事務(wù)是有redo和undo的,redo操作的所有信息都是記錄到 redo_log中,也就是說當(dāng)一個事務(wù)做commit操作時,需要先把這個事務(wù)的操作寫到redo_log中,然后再把這些操作flush到磁盤上,當(dāng) 出現(xiàn)故障時,只需要讀取redo_log,然后再重新flush到磁盤就行了。

而對于undo就比較麻煩,MySQL在處理事務(wù)時,會在數(shù)據(jù)共享 表空間里申請一個段叫做segment段,用保存undo信息,當(dāng)在處理rollback,不是完完全全的物理undo,而是邏輯undo,就是說會對之 前的操作進行反操作,但是這些共享表空間是不進行回收的。這些表空間的回收需要由mysql的master thread進程來進行回收。

相關(guān)文章

  • 保證MySQL與Redis數(shù)據(jù)一致性的6種實現(xiàn)方案

    保證MySQL與Redis數(shù)據(jù)一致性的6種實現(xiàn)方案

    這篇文章將聚焦在一個非常重要且復(fù)雜的問題上:MySQL與Redis數(shù)據(jù)的一致性,當(dāng)我們在應(yīng)用中同時使用MySQL和Redis時,如何保證兩者的數(shù)據(jù)一致性呢?下面就來分享幾種實用的解決方案,需要的朋友可以參考下
    2024-03-03
  • MySQL中my.ini文件的基礎(chǔ)配置和優(yōu)化配置方式

    MySQL中my.ini文件的基礎(chǔ)配置和優(yōu)化配置方式

    文章討論了數(shù)據(jù)庫異步同步的優(yōu)化思路,包括三個主要方面:冪等性、時序和延遲,作者還分享了MySQL配置文件的優(yōu)化經(jīng)驗,并鼓勵讀者提供支持
    2025-01-01
  • mysql插入重復(fù)數(shù)據(jù)的處理(DUPLICATE、IGNORE、REPLACE)

    mysql插入重復(fù)數(shù)據(jù)的處理(DUPLICATE、IGNORE、REPLACE)

    這篇文章主要介紹了mysql插入重復(fù)數(shù)據(jù)的處理方式(DUPLICATE、IGNORE、REPLACE),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • MySQL系列之十二 備份與恢復(fù)

    MySQL系列之十二 備份與恢復(fù)

    這篇文章主要介紹了MySQL 數(shù)據(jù)備份與還原的相關(guān)知識,本文通過示例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下,希望可以幫到你們
    2021-07-07
  • mysql cmd常用命令

    mysql cmd常用命令

    mysql cmd常用命令,偶爾需要命令行執(zhí)行mysql的朋友可以參考下。
    2011-05-05
  • MySQL安裝后沒有my.ini配置文件的解決

    MySQL安裝后沒有my.ini配置文件的解決

    這篇文章主要介紹了MySQL安裝后沒有my.ini配置文件的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • MySQL使用臨時表加速查詢的方法

    MySQL使用臨時表加速查詢的方法

    這篇文章主要介紹了MySQL使用臨時表加速查詢的方法,分析了針對多次重復(fù)查詢使用臨時表的優(yōu)勢,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • MySQL5.6升級5.7時出現(xiàn)主從延遲問題排查過程

    MySQL5.6升級5.7時出現(xiàn)主從延遲問題排查過程

    這篇文章主要介紹了MySQL5.6升級5.7時出現(xiàn)主從延遲問題排查過程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Mysql分區(qū)表的管理與維護

    Mysql分區(qū)表的管理與維護

    改變一個表的分區(qū)方案只需使用alter table 加 partition_options 子句就可以了。這篇文章主要介紹了Mysql分區(qū)表的管理與維護,非常不錯,感興趣的朋友一起學(xué)習(xí)吧,需要的朋友可以參考下
    2016-08-08
  • MySQL全文索引實現(xiàn)簡單版搜索引擎實例代碼

    MySQL全文索引實現(xiàn)簡單版搜索引擎實例代碼

    這篇文章主要給大家介紹了關(guān)于MySQL全文索引實現(xiàn)簡單版搜索引擎的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論

图木舒克市| 五家渠市| 铅山县| 四子王旗| 沁水县| 双牌县| 涞源县| 平远县| 攀枝花市| 阜宁县| 陇川县| 高安市| 高安市| 连平县| 武清区| 石首市| 阿克苏市| 铁岭市| 汨罗市| 天津市| 长沙县| 会宁县| 凌源市| 七台河市| 武安市| 五大连池市| 安达市| 大安市| 砀山县| 建瓯市| 分宜县| 宜黄县| 太白县| 武邑县| 太仆寺旗| 张北县| 蒙自县| 邹城市| 扎赉特旗| 洪江市| 白沙|