欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年05月07日 08:58:16   作者:  
在事務(wù)中,每個正確的原子操作都會被順序執(zhí)行,直到遇到錯誤的原子操作,此時事務(wù)會將之前的操作進(jìn)行回滾。回滾的意思是如果之前是插入操作,那么會執(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ù)器也不會作負(fù)運算。

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,就是說會對之 前的操作進(jìn)行反操作,但是這些共享表空間是不進(jìn)行回收的。這些表空間的回收需要由mysql的master thread進(jìn)程來進(jìn)行回收。

相關(guān)文章

  • 值得收藏的mysql常用命令集錦

    值得收藏的mysql常用命令集錦

    這篇文章主要為大家整理了mysql常用命令匯總,連接Mysql、修改mysql密碼、數(shù)據(jù)庫的創(chuàng)建刪除等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • MySQL基于GTID主從搭建

    MySQL基于GTID主從搭建

    這篇文章主要介紹了MySQL基于GTID主從搭建,文章首先通過xtarbackup來同步數(shù)據(jù)展開文章內(nèi)容詳情,感興趣的小伙伴可以參考一下
    2022-08-08
  • ADODB 入門

    ADODB 入門

    ADODB 入門...
    2006-12-12
  • MySQL 數(shù)據(jù)庫鎖的實現(xiàn)

    MySQL 數(shù)據(jù)庫鎖的實現(xiàn)

    本文主要介紹了MySQL 數(shù)據(jù)庫鎖的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • mysql 5.7.21 winx64綠色版安裝配置方法圖文教程

    mysql 5.7.21 winx64綠色版安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.21 winx64綠色版安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MySQL約束和表的復(fù)雜查詢操作大全

    MySQL約束和表的復(fù)雜查詢操作大全

    約束是關(guān)系型數(shù)據(jù)庫的一個重要功能,?添加到庫中的數(shù)據(jù)需要保證其的正確性;?約束,?就是讓數(shù)據(jù)庫幫助程序員更好的檢查數(shù)據(jù)是否正確.,這篇文章主要介紹了MySQL約束和表的復(fù)雜查詢操作,需要的朋友可以參考下
    2022-11-11
  • 詳解MySQL單列索引和聯(lián)合索引

    詳解MySQL單列索引和聯(lián)合索引

    聯(lián)合索引的結(jié)構(gòu)與電話簿類似,人名由姓和名構(gòu)成,電話簿首先按姓氏進(jìn)行排序,然后按名字對有相同姓氏的人進(jìn)行排序,這篇文章主要介紹了MySQL單列索引和聯(lián)合索引,需要的朋友可以參考下
    2022-09-09
  • MySQL進(jìn)行大數(shù)據(jù)量分頁的優(yōu)化技巧分享

    MySQL進(jìn)行大數(shù)據(jù)量分頁的優(yōu)化技巧分享

    mysql大數(shù)據(jù)量分頁情況下性能會很差,所以本文就來講一講mysql大數(shù)據(jù)量下偏移量很大,性能很差的問題,并附上解決方式,希望對大家有所幫助
    2024-01-01
  • 關(guān)于mysql delete的問題小結(jié)

    關(guān)于mysql delete的問題小結(jié)

    關(guān)于mysql delete的問題,需要的朋友可以參考下。
    2011-05-05
  • Mysql使用索引實現(xiàn)查詢優(yōu)化

    Mysql使用索引實現(xiàn)查詢優(yōu)化

    索引的目的在于提高查詢效率,本文給大家介紹Mysql使用索引實現(xiàn)查詢優(yōu)化技巧,涉及到索引的優(yōu)點等方面的知識點,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07

最新評論