自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

談?wù)勀銓ySQL事務(wù)隔離級別的理解

數(shù)據(jù)庫 MySQL
在MySQL里面,InnoDB引擎默認(rèn)的隔離級別是RR(可重復(fù)讀),因?yàn)樗枰WC事務(wù)ACID特性中的隔離性特征。

?一位5年工作經(jīng)驗(yàn)的粉絲,去阿里面試被問到一個(gè)關(guān)于數(shù)據(jù)庫事務(wù)隔離級別的問題,當(dāng)時(shí),沒有問答上來,希望給他一個(gè)參考答案。那么,今天我給大家談?wù)勎业睦斫狻?/p>

另外,我花了1個(gè)多星期把往期的面試題解析配套文檔準(zhǔn)備好了,一共有10W字,想獲取的小伙伴可以從我的個(gè)人煮葉簡介中找到。

1.臟讀、幻讀、不可重復(fù)讀

在SQL操作中,多個(gè)事務(wù)競爭可能會產(chǎn)生三種不同的現(xiàn)象,分別是臟讀、幻讀、不可重復(fù)讀。

首先來看臟讀,如圖所示,

圖片

假設(shè)有兩個(gè)事務(wù)T1/T2同時(shí)在執(zhí)行,T1事務(wù)有可能會讀取到T2事務(wù)未提交的數(shù)據(jù),但是未提交的事務(wù)T2可能會回滾,也就導(dǎo)致了T1事務(wù)讀取到最終不一定存在的數(shù)據(jù)產(chǎn)生臟讀的現(xiàn)象。

然后來看幻讀,如圖所示:

圖片

假設(shè)有兩個(gè)事務(wù)T1/T2同時(shí)執(zhí)行,事務(wù)T1執(zhí)行范圍查詢或者范圍修改的過程中,事務(wù)T2插入了一條屬于事務(wù)T1范圍內(nèi)的數(shù)據(jù)并且提交了,這時(shí)候在事務(wù)T1查詢發(fā)現(xiàn)多出來了一條數(shù)據(jù),或者在T1事務(wù)發(fā)現(xiàn)這條數(shù)據(jù)沒有被修改,看起來像是產(chǎn)生了幻覺,這種現(xiàn)象稱為幻讀。

最后來看,不可重復(fù)讀,如圖所示:

圖片

假設(shè)有兩個(gè)事務(wù)T1/T2同時(shí)執(zhí)行,事務(wù)T1在不同的時(shí)刻讀取同一行數(shù)據(jù)的時(shí)候結(jié)果可能不一樣,從而導(dǎo)致不可重復(fù)讀的問題。

2.事務(wù)隔離級別

那么事務(wù)隔離級別,就是是為了解決多個(gè)并行事務(wù)競爭, 。而這臟讀、幻讀、不可重復(fù)讀這三種現(xiàn)象在實(shí)際應(yīng)用中,有些業(yè)務(wù)場景是不能接受這些現(xiàn)象存在的,所以在SQL標(biāo)準(zhǔn)中定義了四種隔離級別,分別是:

讀未提交,在這種隔離級別下,可能會產(chǎn)生臟讀、不可重復(fù)讀、幻讀。

讀已提交(RC),在這種隔離級別下,可能會產(chǎn)生不可重復(fù)讀和幻讀。

可重復(fù)讀(RR),在這種隔離級別下,可能會產(chǎn)生幻讀

串行化,在這種隔離級別下,多個(gè)并行事務(wù)串行化執(zhí)行,不會產(chǎn)生安全性問題。

這四種隔離級別里面,只有串行化解決了全部的問題,但這種隔離級別的性能是最低的。

在MySQL里面,InnoDB引擎默認(rèn)的隔離級別是RR(可重復(fù)讀),因?yàn)樗枰WC事務(wù)ACID特性中的隔離性特征。

以上就是我對 MySQL事務(wù)隔離級別的理解。我是被編程耽誤的文藝Tom,如果我的分享對你有幫助,請動(dòng)動(dòng)手指一鍵三連分享給更多的人。關(guān)注我,面試不再難!?

責(zé)任編輯:武曉燕 來源: Tom彈架構(gòu)
相關(guān)推薦

2018-12-19 16:46:38

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

2021-07-26 10:28:13

MySQL事務(wù)隔離

2024-04-26 09:17:20

MySQL事務(wù)隔離

2021-08-04 13:19:42

MySQL 事務(wù)隔離

2022-06-30 09:10:33

NoSQLHBaseRedis

2023-11-28 12:25:02

多線程安全

2022-08-26 00:02:03

RocketMQ單體架構(gòu)MQ

2024-12-02 08:37:04

2010-11-19 16:13:06

oracle事務(wù)隔離級

2021-10-19 10:10:51

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

2009-06-29 17:54:47

Spring事務(wù)隔離

2024-09-20 05:46:00

2024-09-11 16:49:55

2022-09-19 07:57:59

云服務(wù)互聯(lián)網(wǎng)基礎(chǔ)設(shè)施

2025-03-03 08:20:00

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

2024-10-12 16:25:12

2020-10-13 10:32:24

MySQL事務(wù)MVCC

2025-01-13 13:12:54

2022-10-09 15:18:31

SwaggerOpenAPI工具

2022-09-09 10:15:06

OAuthJava
點(diǎn)贊
收藏

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