成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文講清,MySQL事務(wù)隔離級(jí)別

數(shù)據(jù)庫(kù) MySQL
業(yè)務(wù)系統(tǒng)在運(yùn)行的時(shí)候,往往有很多線程同時(shí)在操作數(shù)據(jù)庫(kù),MySQL也需要多線程的處理多個(gè)請(qǐng)求,那么每個(gè)事務(wù)里的多個(gè)SQL語(yǔ)句是如何執(zhí)行的呢?

業(yè)務(wù)系統(tǒng)在運(yùn)行的時(shí)候,往往有很多線程同時(shí)在操作數(shù)據(jù)庫(kù),MySQL也需要多線程的處理多個(gè)請(qǐng)求,那么每個(gè)事務(wù)里的多個(gè)SQL語(yǔ)句是如何執(zhí)行的呢?

基本都是從磁盤(pán)加載數(shù)據(jù)頁(yè)到Buffer Pool的緩存頁(yè)里去,然后更新Buffer Pool里的緩存頁(yè),同時(shí)記錄redo log和undo log。

 

 

 

 

多個(gè)線程并發(fā)執(zhí)行的時(shí)候,會(huì)有一些問(wèn)題:

多個(gè)事務(wù)并發(fā)執(zhí)行,可能會(huì)對(duì)緩存頁(yè)里的同一行數(shù)據(jù)進(jìn)行更新,這種沖突怎么解決?

有的事務(wù)在對(duì)一行數(shù)據(jù)進(jìn)行更新,另一個(gè)事務(wù)在對(duì)這行數(shù)據(jù)進(jìn)行查詢(xún),這個(gè)沖突怎么解決?

接下來(lái)要講的內(nèi)容,主要包括多事務(wù)并發(fā)運(yùn)行存在的問(wèn)題、MySQL的事務(wù)隔離級(jí)別、MVCC多版本控制、鎖。

臟讀

事務(wù)1讀取了事務(wù)2更新的數(shù)據(jù),然后事務(wù)2回滾操作,那么事務(wù)1讀取到的數(shù)據(jù)就是臟數(shù)據(jù)。

例如:

張三的工資是8000,現(xiàn)在領(lǐng)導(dǎo)要給他漲工資到10000。

事務(wù)1把他的工資改為10000,但事務(wù)還沒(méi)提交。

事務(wù)2正在讀取張三的工資,獨(dú)到的是10000。

事務(wù)1此時(shí)回滾了,張三的工資又變成8000了。

事務(wù)2讀取到張三的工資10000為臟數(shù)據(jù),事務(wù)2做了一次臟讀。

不可重復(fù)讀

事務(wù)1多次讀取同一數(shù)據(jù),事務(wù)2在事務(wù)1多次讀取的過(guò)程中,對(duì)數(shù)據(jù)作了更新并提交,導(dǎo)致事務(wù)1多次讀取同一數(shù)據(jù)時(shí),結(jié)果不一致。

例如:

事務(wù)1,讀取到張三的工資8000。

事務(wù)2,把張三的工資改為10000,提交事務(wù)。

事務(wù)1,再次讀取張三的工資,此時(shí)工資為10000。

在一個(gè)事務(wù)中前后兩次讀取同一個(gè)數(shù)據(jù)的結(jié)果不一樣,就是不可重復(fù)讀。

幻讀

一個(gè)事務(wù)用一樣的SQL多次查詢(xún),每次查詢(xún)發(fā)現(xiàn)查到一些之前沒(méi)看到過(guò)的數(shù)據(jù)。

比如,目前公司工資為8000的人有10人。

事務(wù)1,讀取所有工資為8000的人數(shù)為10人。

事務(wù)2,插入一條工資為10000的記錄。

事務(wù)1再次讀取工資為8000的人,為11人。

此時(shí),事務(wù)1出現(xiàn)幻覺(jué)似的,同樣的SQL查詢(xún)語(yǔ)句,第一次查出來(lái)10人,第二次查出來(lái)11人。

不可重復(fù)讀的和幻讀很容易混淆,不可重復(fù)讀側(cè)重于修改,幻讀側(cè)重于新增或刪除。解決不可重復(fù)讀的問(wèn)題只需鎖住滿(mǎn)足條件的行,解決幻讀需要鎖表。

臟讀、不可重復(fù)讀、幻讀,數(shù)據(jù)庫(kù)并發(fā)執(zhí)行,每個(gè)線程可能會(huì)開(kāi)啟一個(gè)事務(wù),每個(gè)事務(wù)都會(huì)執(zhí)行crud操作。

數(shù)據(jù)庫(kù)并發(fā)的執(zhí)行多個(gè)事務(wù),多個(gè)事務(wù)并發(fā)的對(duì)緩存頁(yè)里的同一批數(shù)據(jù)進(jìn)行crud,就可能導(dǎo)致臟讀、不可重復(fù)讀、幻讀這些問(wèn)題。

所以,這些問(wèn)題的本質(zhì)是,數(shù)據(jù)庫(kù)多事務(wù)并發(fā)問(wèn)題,為了解決這些問(wèn)題,數(shù)據(jù)庫(kù)設(shè)計(jì)了事務(wù)隔離級(jí)別、MVCC多版本控制、鎖機(jī)制。

事務(wù)隔離級(jí)別

SQL標(biāo)準(zhǔn)中定義了4種事務(wù)隔離級(jí)別,就是說(shuō)事務(wù)并發(fā)運(yùn)行的時(shí)候,互相是如何隔離的,MySQL默認(rèn)是可重復(fù)讀(RR)。

 

 

 

 

不同的隔離級(jí)別是可以避免不同的事務(wù)并發(fā)問(wèn)題的。

read-uncommitted(RU),可能會(huì)發(fā)生臟讀、不可重復(fù)讀、幻讀。

read-committed(RC),不會(huì)發(fā)生臟讀,但是會(huì)發(fā)生不可重復(fù)讀、幻讀

也就是說(shuō),事務(wù)沒(méi)提交的情況下修改的值,你是讀不到的。但是,一旦事務(wù)提交了,你事務(wù)就能讀到,所以可能你多次讀到的值不一樣。

repeatable-read(RR),MySQL默認(rèn)的事務(wù)隔離級(jí)別,做了大量復(fù)雜的工作,解決了臟讀、不可重復(fù)讀、幻讀問(wèn)題,一般生成環(huán)境使用這個(gè)隔離級(jí)別就可以了。

serializable,事務(wù)串行執(zhí)行,根本不會(huì)并發(fā)執(zhí)行,所以不會(huì)有臟讀、不可重復(fù)讀、幻讀這些問(wèn)題。但缺點(diǎn)也非常明顯,就是并發(fā)太差了。一般生產(chǎn)環(huán)境也不會(huì)使用 

責(zé)任編輯:龐桂玉 來(lái)源: Hollis
相關(guān)推薦

2020-04-07 09:21:45

MySQL數(shù)據(jù)庫(kù)SQL

2020-04-01 17:26:57

MySQL事務(wù)隔離級(jí)別數(shù)據(jù)庫(kù)

2020-02-21 20:10:13

搞懂事務(wù)隔離級(jí)別

2020-10-26 09:18:50

RedisCluste

2018-12-19 16:46:38

MySQL事務(wù)隔離數(shù)據(jù)庫(kù)

2021-08-04 13:19:42

MySQL 事務(wù)隔離

2021-07-26 10:28:13

MySQL事務(wù)隔離

2024-04-26 09:17:20

MySQL事務(wù)隔離

2024-12-02 08:37:04

2021-11-18 15:08:19

MySQLSQL索引

2021-10-25 15:25:38

MySQL索引數(shù)據(jù)庫(kù)

2022-06-29 11:01:05

MySQL事務(wù)隔離級(jí)別

2009-06-29 17:54:47

Spring事務(wù)隔離

2010-11-19 16:13:06

oracle事務(wù)隔離級(jí)

2021-10-29 11:30:31

補(bǔ)碼二進(jìn)制反碼

2024-01-12 07:14:52

AI應(yīng)用架構(gòu)

2019-10-15 10:23:13

服務(wù)器MySQL 數(shù)據(jù)

2023-02-02 07:06:10

2022-06-10 11:51:49

MySQL事務(wù)隔離

2025-01-13 13:12:54

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久伊 | 国产精品免费观看 | 一区二区三区亚洲 | 在线午夜 | 免费一级毛片 | 欧美成人免费在线视频 | 亚洲日本免费 | 国产美女特级嫩嫩嫩bbb片 | 欧美日韩在线观看一区 | 成人国内精品久久久久一区 | 国产精品免费大片 | 国产免费a视频 | 色www精品视频在线观看 | 久久精品视频在线观看 | 久久人爽| 国产精品久久久久久久久久久久久 | 黄视频在线网站 | 久热久热 | 欧美一区二区三区在线播放 | 欧美日韩综合视频 | 中文字幕国产第一页 | 久久久激情视频 | 成人毛片网 | 久久精品欧美一区二区三区不卡 | 国产在线看片 | 伊人精品在线视频 | 给我免费的视频在线观看 | 国产综合网站 | 亚洲丝袜天堂 | 日韩精品在线网站 | 色综合色综合色综合 | 一区二区三区亚洲 | 久久精品国产久精国产 | 天天爽夜夜操 | 国产精品污www一区二区三区 | 国产成人精品综合 | 日韩不卡三区 | 国产一区91精品张津瑜 | 日韩欧美不卡 | 全免一级毛片 | 久久国产精品精品国产色婷婷 |