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

一致性視圖是啥時(shí)候建立的?

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
數(shù)據(jù)庫(kù)事務(wù)的一致性視圖是啥時(shí)候建立的?這個(gè)問(wèn)題還比較重要,如果沒(méi)搞清楚,可能會(huì)影響我們做實(shí)驗(yàn)的結(jié)果,進(jìn)而得出錯(cuò)誤的結(jié)論,所以今天松哥和大家簡(jiǎn)單聊一聊這個(gè)話(huà)題。

 [[442041]]

在上篇文章中涉及到了一個(gè)小小的問(wèn)題,就是數(shù)據(jù)庫(kù)事務(wù)的一致性視圖是啥時(shí)候建立的?

這個(gè)問(wèn)題還比較重要,如果沒(méi)搞清楚,可能會(huì)影響我們做實(shí)驗(yàn)的結(jié)果,進(jìn)而得出錯(cuò)誤的結(jié)論,所以今天松哥和大家簡(jiǎn)單聊一聊這個(gè)話(huà)題。

1. 錯(cuò)誤演示

先給大家來(lái)一個(gè)錯(cuò)誤演示。

我們打開(kāi)兩個(gè)會(huì)話(huà)窗口,默認(rèn)情況下隔離級(jí)別是可重復(fù)讀,我們來(lái)看下:

首先在 A 會(huì)話(huà)中查看當(dāng)前 user 表,查看完成后開(kāi)啟事務(wù):

可以看到當(dāng)前 age 是 101。

接下來(lái)在 B 會(huì)話(huà)中修改 age:

可以看到,B 會(huì)話(huà)已經(jīng)修改成功。

接下來(lái)回到 A 會(huì)話(huà)查詢(xún)記錄:

可以看到,A 會(huì)話(huà)的記錄也變了。完整測(cè)試流程如下:

說(shuō)好的可重復(fù)讀呢?

按理說(shuō),可重復(fù)讀就是別的事務(wù)對(duì)數(shù)據(jù)的操作不影響當(dāng)前事務(wù),但是上面這個(gè)案例似乎和我們理解的可重復(fù)讀有出入。

2. 分析

不知道小伙伴們是否還記得可重復(fù)讀的特點(diǎn):

用戶(hù)在另外一個(gè)事務(wù)中執(zhí)行同條 SELECT 語(yǔ)句數(shù)次,結(jié)果總是相同的。

從這個(gè)角度來(lái)說(shuō),第一小節(jié)的案例似乎也沒(méi)有問(wèn)題,因?yàn)槲覀冊(cè)?A 會(huì)話(huà)中執(zhí)行 SELECT 語(yǔ)句多次,查到的結(jié)果也都是相同的,age 都是 102。

但是我們疑惑的是明明 B 會(huì)話(huà)的事務(wù)后開(kāi)啟的,但是我們卻在 A 會(huì)話(huà)中讀取到了 B 的修改,這似乎不應(yīng)該。

這里就涉及到一個(gè)問(wèn)題,事務(wù)的一致性視圖是何時(shí)建立的?

事實(shí)上,我們執(zhí)行的 begin 語(yǔ)句并不是一個(gè)事務(wù)真正的起點(diǎn)。執(zhí)行完 begin 之后,接下來(lái)執(zhí)行的第一句 SQL,事務(wù)才真正啟動(dòng)。

我們稍微修改一下第一小節(jié)的案例:

在 A 會(huì)話(huà)中,事務(wù)開(kāi)啟之后,立馬先執(zhí)行一條 SELECT 語(yǔ)句,然后再去 B 會(huì)話(huà)中做修改,修改完成后再回到 A 會(huì)話(huà)繼續(xù)查詢(xún),此時(shí)發(fā)現(xiàn) B 中的修改對(duì) A 并不可見(jiàn),這個(gè)結(jié)果也符合用戶(hù)在另外一個(gè)事務(wù)中執(zhí)行同條 SELECT 語(yǔ)句數(shù)次,結(jié)果總是相同的。

如果我們想要執(zhí)行完 begin 之后,就立馬開(kāi)啟事務(wù),那么可以通過(guò)如下方式來(lái)執(zhí)行:

  1. start transaction with consistent snapshot; 

這個(gè) SQL 執(zhí)行完之后,事務(wù)立馬就啟動(dòng)了。

接下來(lái),回到第一小節(jié)的案例,我們修改一下事務(wù)啟動(dòng)的命令:

此時(shí),A 會(huì)話(huà)中事務(wù)的查詢(xún)就看不見(jiàn) B 中的修改了。

3.小結(jié)

好啦,一個(gè)小小的案例,希望小伙伴們?cè)谧鰧?shí)驗(yàn)的時(shí)候不要出錯(cuò)。本文涉及到一個(gè)概念叫做一致性視圖,如果大家不熟悉可以參考上篇文章。

責(zé)任編輯:武曉燕 來(lái)源: 江南一點(diǎn)雨
相關(guān)推薦

2017-07-25 14:38:56

數(shù)據(jù)庫(kù)一致性非鎖定讀一致性鎖定讀

2021-05-19 21:50:46

Hash算法測(cè)試

2022-12-14 08:23:30

2021-07-27 08:57:10

算法一致性哈希哈希算法

2020-07-20 08:30:37

算法哈希分布式系統(tǒng)

2021-02-05 08:00:48

哈希算法?機(jī)器

2021-02-02 12:40:50

哈希算法數(shù)據(jù)

2021-02-04 06:30:26

Python編程語(yǔ)言

2019-11-01 09:13:37

算法哈希緩存

2021-06-22 10:22:08

業(yè)務(wù)IT一致性首席信息官

2021-07-26 06:33:42

CRDT數(shù)據(jù)CAP

2020-05-12 10:43:22

Redis緩存數(shù)據(jù)庫(kù)

2020-11-24 09:03:41

一致性MySQLMVCC

2022-03-22 09:54:22

Hash算法

2022-10-19 12:22:53

并發(fā)扣款一致性

2021-06-30 21:13:49

CPUCache數(shù)據(jù)

2019-08-30 12:46:10

并發(fā)扣款查詢(xún)SQL

2020-04-01 15:50:17

TiDBMySQL數(shù)據(jù)庫(kù)

2025-03-27 08:20:54

2020-08-05 08:46:10

NFS網(wǎng)絡(luò)文件系統(tǒng)
點(diǎn)贊
收藏

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