久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL中怎么判定隔離級別

139次閱讀
沒有評論

共計 1800 個字符,預計需要花費 5 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這期內容當中丸趣 TV 小編將會給大家帶來有關 MySQL 中怎么判定隔離級別,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

ACID 的特性

1. 原子性(Atomicity)

事務被視為不可分割的最小單元,事務的所有操作要么全部提交成功,要么全部失敗回滾。回滾可以用回滾日志來實現,回滾日志記錄著事務所執行的修改操作,在回滾時反向執行這些修改操作即可。

2. 一致性(Consistency)

一致性是指事務必須使數據庫從一個一致性狀態變換到另一個一致性狀態,也就是說一個事務執行之前和執行之后都必須處于一致性狀態。

拿轉賬來說,假設用戶 A 和用戶 B 兩者的錢加起來一共是 5000,那么不管 A 和 B 之間如何轉賬,轉幾次賬,事務結束后兩個用戶的錢相加起來應該還得是 5000,這就是事務的一致性。

3. 隔離性(Isolation)

隔離性是當多個用戶并發訪問數據庫時,比如操作同一張表時,數據庫為每一個用戶開啟的事務,不能被其他事務的操作所干擾,多個并發事務之間要相互隔離。

即要達到這么一種效果:對于任意兩個并發的事務 T1 和 T2,在事務 T1 看來,T2 要么在 T1 開始之前就已經結束,要么在 T1 結束之后才開始,這樣每個事務都感覺不到有其他事務在并發地執行。

4. 持久性(Durability)

持久性是指一個事務一旦被提交了,那么對數據庫中的數據的改變就是永久性的,即便是在數據庫系統遇到故障的情況下也不會丟失提交事務的操作。

并發一致性問題

1. 臟讀

臟讀是指在一個事務處理過程里讀取了另一個未提交的事務中的數據。

T1 修改一個數據,T2 隨后讀取這個數據。如果 T1 撤銷了這次修改,那么 T2 讀取的數據是臟數據。

2. 不可重復讀

不可重復讀是指在對于數據庫中的某個數據,一個事務范圍內多次查詢卻返回了不同的數據值,這是由于在查詢間隔,被另一個事務修改并提交了。

例如事務 T1 在讀取某一數據,而事務 T2 立馬修改了這個數據并且提交事務給數據庫,事務 T1 再次讀取該數據就得到了不同的結果,發送了不可重復讀。

不可重復讀和臟讀的區別是,臟讀是某一事務讀取了另一個事務未提交的臟數據,而不可重復讀則是讀取了前一事務提交的數據。

3. 幻讀

幻讀是事務非獨立執行時發生的一種現象。例如事務 T1 對一個表中所有的行的某個數據項做了從“1”修改為“2”的操作,這時事務 T2 又對這個表中插入了一行數據項,而這個數據項的數值還是為“1”并且提交給數據庫。而操作事務 T1 的用戶如果再查看剛剛修改的數據,會發現還有一行沒有修改,其實這行是從事務 T2 中添加的,就好像產生幻覺一樣,這就是發生了幻讀。

幻讀和不可重復讀都是讀取了另一條已經提交的事務(這點就臟讀不同),所不同的是不可重復讀查詢的都是同一個數據項,而幻讀針對的是一批數據整體(比如數據的個數)。

T1 讀取某個范圍的數據,T2 在這個范圍內插入新的數據,T1 再次讀取這個范圍的數據,此時讀取的結果和和第一次讀取的結果不同。

MySQL 隔離級別

1. Serializable (串行化):強制事務串行執行。

可避免臟讀、不可重復讀、幻讀的發生。

2. Repeatable read (可重復讀):保證在同一個事務中多次讀取同樣數據的結果是一樣的

可避免臟讀、不可重復讀的發生。

3. Read committed (讀已提交):一個事務只能讀取已經提交的事務所做的修改

可避免臟讀的發生。

4. Read uncommitted (讀未提交):事務中的修改,即使沒有提交,對其他事務也是可見的

最低級別,任何情況都無法保證。

隔離級別最高的是 Serializable 級別,最低的是 Read uncommitted 級別,級別越高,執行效率就越低。

像 Serializable 這樣的級別,就是以鎖表的方式 (類似于 Java 多線程中的鎖) 使得其他的線程只能在鎖外等待,所以平時選用何種隔離級別應該根據實際情況。

在 MySQL 數據庫中默認的隔離級別為 Repeatable read (可重復讀)。

Oracle 數據庫中,只支持 Serializable (串行化) 級別和 Read committed (讀已提交) 這兩種級別,其中默認的為 Read committed 級別。

上述就是丸趣 TV 小編為大家分享的 MySQL 中怎么判定隔離級別了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計1800字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 呼伦贝尔市| 普洱| 安溪县| 大足县| 自贡市| 蕉岭县| 安丘市| 隆化县| 华宁县| 永仁县| 庐江县| 屯门区| 仪陇县| 长汀县| 堆龙德庆县| 福鼎市| 嘉荫县| 兰州市| 株洲市| 甘孜县| 涞水县| 潜山县| 咸宁市| 惠水县| 贡觉县| 塔城市| 凤翔县| 阜新| 图木舒克市| 海宁市| 郑州市| 新巴尔虎右旗| 武穴市| 沛县| 福州市| 河北省| 盐津县| 长子县| 姚安县| 五台县| 鄂州市|