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

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

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

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

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

1、為什么auto_increament沒(méi)有回滾?

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

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

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

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

相關(guān)文章

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

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

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

    MySQL基于GTID主從搭建

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

    ADODB 入門(mén)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論