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

MySQL事務(wù)的四大特性以及并發(fā)事務(wù)問題解讀

 更新時間:2023年09月22日 16:14:54   作者:LMGD  
這篇文章主要介紹了MySQL事務(wù)的四大特性以及并發(fā)事務(wù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

MySQL事務(wù)的四大特性以及并發(fā)事務(wù)

事務(wù)的四大特性ACID

原子性(Atomicity):

  • 事務(wù)是不可分割的最小單元,要么全部成功,要么全部失敗。
  • (eg:轉(zhuǎn)賬案例,轉(zhuǎn)賬過程中任何一步操作失敗了,那么整個事務(wù)就失敗了)

一致性(Consistency):

  • 事務(wù)完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。
  • (不管是事務(wù)執(zhí)行成功提交,還是事務(wù)執(zhí)行失敗回滾了,張三李四賬戶余額加起是一個恒定值。轉(zhuǎn)賬前總和6000,轉(zhuǎn)賬后不可能出現(xiàn)兩個人的賬戶總和8000)

隔離性(Isolation):

  • 數(shù)據(jù)庫系統(tǒng)提供的隔離機(jī)制,保證事務(wù)在不受外部并發(fā)操作影響的獨立環(huán)境下運行。
  • (隔離性是指:有并發(fā)個事務(wù),事務(wù)A、事務(wù)B同時操作數(shù)據(jù)庫,A事務(wù)在操作的時候不會影響B(tài)事務(wù)的執(zhí)行;同理B事務(wù)在操作的時候,也不會影響A事務(wù)的執(zhí)行。它們兩個事務(wù)在獨立的環(huán)境下運行的,互不影響。)

持久性(Persistence):

  • 事務(wù)一旦提交或回滾,它對數(shù)據(jù)庫中的數(shù)據(jù)改變就是永久的。
  • (不管是事務(wù)執(zhí)行成功提交了,還是操作異?;貪L了,它對數(shù)據(jù)庫的改變時永久的,因為數(shù)據(jù)庫的數(shù)據(jù)最終是存儲在磁盤的,那么存儲在磁盤的數(shù)據(jù)它會被永久的保留下來)

事務(wù)-并發(fā)事務(wù)問題

臟讀:一個事務(wù)讀到另一個事務(wù)還沒有提交的數(shù)據(jù)。

不可重復(fù)讀:一個事務(wù)先后讀取同一條記錄,但兩次讀取的數(shù)據(jù)不同,稱之為不可重復(fù)讀。

幻讀: 一個事務(wù)按照條件查詢事務(wù)時,沒有對應(yīng)的數(shù)據(jù)行,但是在插入數(shù)據(jù)時,又發(fā)現(xiàn)這行數(shù)據(jù)已存在,好像出現(xiàn)了幻影。

并發(fā)事務(wù)出現(xiàn)的問題-圖文描述:

臟讀:

  • B事務(wù)讀取A事務(wù)修改后(update后)未提交的數(shù)據(jù);
  • 事務(wù)A對id=1 的數(shù)據(jù)進(jìn)行了修改,且修改后還未提交事務(wù),此時事務(wù)B查詢id=1的數(shù)據(jù),查到的數(shù)據(jù)是事務(wù)B修改后未提交的數(shù)據(jù)。這種情況稱之為臟讀。

不可以重復(fù)讀:

  • A事務(wù)一共有4個操作,第一步時查詢數(shù)據(jù)庫id=1的數(shù)據(jù),第二步執(zhí)行其他操作時,此時B事務(wù)對id=1的數(shù)據(jù)進(jìn)行修改(注:并發(fā)事務(wù)),修改后提交事務(wù)。
  • A事務(wù)執(zhí)行第三步查詢id=1的數(shù)據(jù)時,和第一步查詢id=1的返回結(jié)果不一樣(因為B事務(wù)對id=1的數(shù)據(jù)進(jìn)行了修改),這種情況稱之為不可以重復(fù)讀。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Centos7下安裝MySQL8.0.23的步驟(小白入門級別)

    Centos7下安裝MySQL8.0.23的步驟(小白入門級別)

    這篇文章主要介紹了Centos7下安裝MySQL8.0.23的步驟(小白入門級別),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • mysql表優(yōu)化、分析、檢查和修復(fù)的方法詳解

    mysql表優(yōu)化、分析、檢查和修復(fù)的方法詳解

    這篇文章主要介紹了mysql表優(yōu)化、分析、檢查和修復(fù)的方法,結(jié)合實例形式較為詳細(xì)的分析了MySQL表進(jìn)行優(yōu)化,分析與修復(fù)等操作的各種常見命令與使用技巧,需要的朋友可以參考下
    2016-04-04
  • 淺談sql語句中GROUP BY 和 HAVING的使用方法

    淺談sql語句中GROUP BY 和 HAVING的使用方法

    GROUP BY語句和HAVING語句,經(jīng)過研究和練習(xí),終于明白如何使用了,在此記錄一下同時添加了一個自己舉的小例子,通過寫這篇文章來加深下自己學(xué)習(xí)的效果,還能和大家分享下,同時也方便以后查閱,一舉多得,下面由小編來和大家一起學(xué)習(xí)
    2019-05-05
  • MySQL 8.0統(tǒng)計信息不準(zhǔn)確的原因

    MySQL 8.0統(tǒng)計信息不準(zhǔn)確的原因

    這篇文章主要介紹了MySQL 8.0統(tǒng)計信息不準(zhǔn)確的原因,幫助大家更好的理解和學(xué)習(xí)MySQL8.0的相關(guān)內(nèi)容,感興趣的朋友可以了解下
    2020-08-08
  • mysql使用source 命令亂碼問題解決方法

    mysql使用source 命令亂碼問題解決方法

    從windows上導(dǎo)出一個sql執(zhí)行文件,再倒入到unbutn中,結(jié)果出現(xiàn)亂碼,折騰7-8分鐘,解決方式在導(dǎo)出mysql sql執(zhí)行文件的時候,指定一下編碼格式
    2013-04-04
  • 簡單談?wù)凪ySQL中的int(m)

    簡單談?wù)凪ySQL中的int(m)

    設(shè)置int型的時候,需要設(shè)置int(M),以前知道這個M最大是255,但是到底應(yīng)該設(shè)置多少并沒有在意。注意zerofill,今天我們來簡單探討下
    2016-09-09
  • 關(guān)于數(shù)據(jù)庫中保留小數(shù)位的問題

    關(guān)于數(shù)據(jù)庫中保留小數(shù)位的問題

    本篇文章是對關(guān)于在數(shù)據(jù)庫中保留小數(shù)位的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • mysql實現(xiàn)事務(wù)的提交和回滾實例

    mysql實現(xiàn)事務(wù)的提交和回滾實例

    這篇文章主要介紹了mysql實現(xiàn)事務(wù)的提交和回滾,需要的朋友可以參考下
    2014-06-06
  • 詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題

    詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題

    在本篇文章里小編給大家整理的是關(guān)于詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題,需要的朋友們可以參考下
    2020-02-02
  • 為什么MySQL選擇Repeatable Read作為默認(rèn)隔離級別

    為什么MySQL選擇Repeatable Read作為默認(rèn)隔離級別

    關(guān)于MySQL的事務(wù)隔離級別,相信很多讀者都不陌生,那么,你知道為什么Oracle選擇RC作為默認(rèn)級別,而MySQL要選擇RR作為默認(rèn)的隔離級別嗎
    2021-07-07

最新評論