官方文檔對髒讀、不可重複讀、幻讀定義

之前網上查了好多關於髒讀、不可重複讀、幻讀的定義,各有千秋,今天聽老師講課,終於聽到了權威的一版,在此記錄:
前提:至少兩個事物
髒讀: 一個事物讀了另一個事物***未提交***的數據(未提交的數據稱爲髒數據)
不可重複讀:一個事物讀了另一個事物***已提交***的修改或刪除的數據

幻讀:一個事物讀了另一個事物***已提交***的新增的數據

解決辦法:

在這裏插入圖片描述
Mysql的innoDB對事物隔離級別的支持
在Mysqk這裏插入圖片描述
RR和RC對MVCC的支持程度:
在這裏插入圖片描述

RC(read Commit)還是會出現幻讀的原因:
大部分場景下,它不支持間隙鎖,而RR支持間隙鎖,不會出現幻讀;

RR可以解決不可重複讀,而RC不可以的原因:
RR讀取到的數據是第一次查詢之前的所有數據,RC讀取到的是目前的查詢之前所有數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章