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

InnoDB,快照讀,在RR和RC下有何差異?(很多人,以為自己懂了...)

數據庫 MySQL
MySQL數據庫,InnoDB存儲引擎,為了提高并發,使用MVCC機制,在并發事務時,通過讀取數據行的歷史數據版本,不加鎖,來提高并發的一種不加鎖一致性讀。

什么是快照讀(Snapshot Read)?

MySQL數據庫,InnoDB存儲引擎,為了提高并發,使用MVCC機制,在并發事務時,通過讀取數據行的歷史數據版本,不加鎖,來提高并發的一種不加鎖一致性讀(Consistent Nonlocking Read)。

畫外音:本文所有討論基于MySQL-InnoDB。

快照讀的內核原理,詳見:《??InnoDB并發如此高,原因竟然在這???》

什么是讀提交(Read Committed)?

(1)數據庫領域,事務隔離級別的一種,簡稱RC;

(2)它解決“讀臟”問題,保證讀取到的數據行都是已提交事務寫入的;

(3)它可能存在“讀幻影行”問題,同一個事務里,連續相同的read可能讀到不同的結果集;

什么是可重復讀(Repeated Read)?

(1)數據庫領域,事務隔離級別的一種,簡稱RR;

(2)它不但解決“讀臟”問題,還部分解決了“讀幻影行”問題,同一個事務里,連續相同的read讀到相同的結果集;

在讀提交(RC),可重復讀(RR)兩個不同的事務的隔離級別下,快照讀有什么不同呢?我們一起來做一些實驗。

假設有InnoDB表:

t(id PK, name);

表中有三條記錄:

  • shenjian
  • zhangsan
  • lisi

case 1,兩個并發事務A,B執行的時間序列如下(A先于B開始,B先于A結束):

A1: start transaction;
B1: start transaction;
A2: select * from t;
B2: insert into t values (4, wangwu);
A3: select * from t;
B3: commit;
A4: select * from t;

提問1:假設事務的隔離級別是可重復讀RR,事務A中的三次查詢,A2, A3, A4分別讀到什么結果集?

提問2:假設事務的隔離級別是讀提交RC,A2, A3, A4又分別讀到什么結果集呢?

case 2,仍然是上面的兩個事務,只是A和B開始時間稍有不同(B先于A開始,B先于A結束):

         B1: start transaction;

A1: start transaction;

A2: select * from t;
B2: insert into t values (4, wangwu);
A3: select * from t;
B3: commit;
A4: select * from t;

提問3:假設事務的隔離級別是可重復讀RR,事務A中的三次查詢,A2, A3, A4分別讀到什么結果集?

提問4:假設事務的隔離級別是讀提交RC,A2, A3, A4的結果集又是什么呢?

case 3,仍然是并發的事務A與B(A先于B開始,B先于A結束):

A1: start transaction;
B1: start transaction;
B2: insert into t values (4, wangwu);
B3: commit;
A2: select * from t;

提問5:假設事務的隔離級別是可重復讀RR,事務A中的A2查詢,結果集是什么?

提問6:假設事務的隔離級別是讀提交RC,A2的結果集又是什么呢?

case 4,事務開始的時間再換一下(B先于A開始,B先于A結束):

case 4,事務開始的時間再換一下(B先于A開始,B先于A結束):
B1: start transaction;

A1: start transaction;

B2: insert into t values (4, wangwu);

B3: commit;
A2: select * from t;

提問7:假設事務的隔離級別是可重復讀RR,事務A中的A2查詢,結果集是什么?

提問8:假設事務的隔離級別是讀提交RC,A2的結果集又是什么呢?

很多時候,我們以為自己懂了,其實...

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2023-12-27 18:16:39

MVCC隔離級別幻讀

2024-09-12 08:32:42

2021-01-30 11:42:53

迭代器代碼元素

2025-06-13 10:14:55

2018-02-13 14:48:17

戴爾

2022-02-06 00:07:19

互聯網失業職業

2022-10-26 07:39:36

MVCC數據庫RR

2023-05-31 16:22:36

人工智能AI

2022-07-06 10:33:39

技術債務CIO

2017-12-13 15:57:12

2019-12-09 10:02:41

泛型ypeScript前端

2019-08-21 08:24:34

技術過濾器代碼

2021-06-24 09:08:34

Java代碼泛型

2020-06-29 08:28:36

v-for 解構函數

2014-05-09 15:29:21

2020-11-16 11:24:00

Spring AOP數據庫

2025-02-21 08:48:16

Typescript內置聯合類型

2021-01-15 05:39:13

HashMapHashTableTreeMap

2021-09-07 17:42:16

人工智能AI

2020-06-08 19:16:52

大數據IT技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本在线视频一区二区 | 日本三级全黄三级a | 玖玖爱365 | 欧美极品在线观看 | 99pao成人国产永久免费视频 | 国产成人在线播放 | 精品国产乱码久久久久久影片 | 久久久网 | 亚洲日韩中文字幕一区 | 久久国产精品首页 | 人人干人人干人人 | 欧美日韩国产免费 | 午夜影院在线 | 97精品超碰一区二区三区 | 国产一级视频在线播放 | 国产色婷婷| 精品国产一区二区在线 | 午夜精品一区二区三区在线观看 | 青草青草久热精品视频在线观看 | 一区二区三区精品视频 | 国产精品久久久久久久久久三级 | 国产精品国产精品国产专区不片 | 一区二区不卡视频 | 最新国产精品精品视频 | 男女羞羞视频在线看 | 成人黄在线观看 | 精品乱子伦一区二区三区 | 欧美一a| 免费黄色av | 欧美日韩在线免费 | 超碰伊人久久 | 国产亚洲精品美女久久久久久久久久 | 国产欧美一区二区三区在线播放 | 久久精品视频免费观看 | 亚洲免费影院 | 91欧美精品 | 久久精品视频免费观看 | 久久久久久av | 在线观看中文字幕亚洲 | 亚洲激情自拍偷拍 | 性色av网站 |