MYSQL事件隔離級別以及復讀,幻讀,臟讀的理解

来源:https://www.cnblogs.com/pythonywy/archive/2019/10/14/11671581.html
-Advertisement-
Play Games

一.mysql事件隔離級別 1未提交讀(READUNCOMMITTED) 另一個事務修改了數據,但尚未提交,而本事務中的SELECT會讀到這些未被提交的數據(臟讀)( 隔離級別最低,併發性能高 ) 2..提交讀(READCOMMITTED) 本事務讀取到的是最新的數據(其他事務提交後的)。問題是,在 ...


一.mysql事件隔離級別

1未提交讀(READUNCOMMITTED)

另一個事務修改了數據,但尚未提交,而本事務中的SELECT會讀到這些未被提交的數據(臟讀)( 隔離級別最低,併發性能高 )

2..提交讀(READCOMMITTED)

本事務讀取到的是最新的數據(其他事務提交後的)。問題是,在同一個事務里,前後兩次相同的SELECT會讀到不同的結果(不重覆讀)。會出現不可重覆讀、幻讀問題(鎖定正在讀取的行)

3.可重覆讀(REPEATABLEREAD)

在同一個事務里,SELECT的結果是事務開始時時間點的狀態,因此,同樣的SELECT操作讀到的結果會是一致的。但是,會有幻讀現象(稍後解釋)。會出幻讀(鎖定所讀取的所有行)

4.串列化(SERIALIZABLE)

讀操作會隱式獲取共用鎖,可以保證不同事務間的互斥(鎖表)

二.臟讀、不可重覆讀、幻讀、復讀

1.臟讀

當前事務讀到的數據是別的事務想要修改成為的但是沒有修改成功的數據

2.不可重覆讀

當前事務先進行了一次數據讀取,然後再次讀取到的數據是別的事務修改成功的數據,導致兩次讀取到的數據不匹配,也就照應了不可重覆讀的語義

3.幻讀

當前事務讀第一次取到的數據比後來讀取到數據條目少或者增加,針對數據的刪與增

4.復讀

當前事務先進行了一次數據讀取,然後再次讀取到的數據是別的事務修改之前的數據,兩次數據相同


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近需要獲取group 對應的id 數字型大小碼,突然想不起來怎麼獲得了,現在在這裡進行備忘一下: 保持更新,更多內容請關註 cnblogs.com/xuyaowen; 我之前也寫過一個用戶管理相關的博客,請訪問下麵的鏈接: https://www.cnblogs.com/xuyaowen/p/linu ...
  • 最近在關註 分散式部署相關的工具和方法,下麵是一些有趣的鏈接: Linux PXE + Kickstart 自動裝機 https://www.cnblogs.com/llife/p/11632933.html 本文章作用,主要是用來進行索引文檔鏈接信息,保持更新,更多內容請關註 cnblogs.co ...
  • 前面分析了伙伴管理演算法的初始化,在切入分析代碼實現之前,例行先分析一下其實現原理。 伙伴管理演算法(也稱之為Buddy演算法),該演算法將所有空閑的頁面分組劃分為MAX_ORDER個頁面塊鏈表進行管理,其中MAX_ORDER定義: 通常該值都是定義為11,而CONFIG_FORCE_MAX_ZONEORD ...
  • 下麵是一些ssh agent的資料簡要摘錄,網路上的相關的文章已經很多了: ssh 推薦的登錄方式是使用私鑰登錄。但是如果生成私鑰的時候,設置了口令(passphrase),每次登錄時需要輸入口令也很麻煩。可以通過 ssh-agent 來管理私鑰,把私鑰載入進記憶體,之後便不用再輸入私鑰。 ssh-a ...
  • 一、基礎知識 1、cortex-m3支持256個中斷,其中包含了16個內核中斷,240個外部中斷 2、STM32只有84個中斷,包括16個內核中斷和68個可屏蔽中斷 3、STM32F103上只有60個可屏蔽中斷(本文重點講解F103) 4、先占優先順序和次占優先順序 先占優先順序(搶占優先順序):搶占優先順序 ...
  • 此題的題意很清晰: 日期相差一天(使用 ); 今天的溫度大於昨天。 ...
  • sql語句如下: SELECT * from A LEFT JOIN B ON A.aID = B.bID ...
  • 一、事務和隔離級別 事務的概念:事務是把對資料庫的一系列操作都看做一個整體,要麼全部成功,要麼全部失敗,利用事務我們可以保證資料庫的完整性,事務具有原子性。 隔離級別:隔離級別定義了事務與事務之間的隔離距離。 臟讀(dirty read):當一個事務讀取另一個事務未提交的修改時,產生臟讀。 不可重覆 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...