MyQL 事務隔離級別解析

隔離級別臟讀不可重復讀幻讀
未提交讀可能可能可能
已提交讀不可能可能可能
可重復讀不可能不可能可能
可串行化不可能不可能不可能

當我們談論數據庫事務的隔離級別時,經常會聽到“臟讀”、“不可重復讀”和“幻讀”這三個術語。下面我會盡量用通俗的語言來解釋它們:

一、臟讀(Dirty Read):

想象你正在讀一本小說,而這本書的作者在你閱讀的過程中還在不斷地修改內容。你可能讀到了一個情節,但過一會兒再回去看,發現這部分內容已經被作者修改了。這就是“臟讀”。在數據庫中,如果一個事務讀取了另一個未提交事務的修改,就可能讀取到“臟”數據,因為這些數據可能隨時會被回滾,導致你之前讀取的數據是無效的或不準確的。

二、不可重復讀(Non-repeatable Read):

這有點像是在一個多人編輯的文檔中工作。你讀取了一個段落,然后過了一會兒再次讀取相同的段落,但發現內容已經被其他人修改了。在數據庫中,如果一個事務在讀取某些數據后,另一個事務對這些數據進行了修改(UPDATE或DELETE),那么當第一個事務再次讀取這些數據時,就會發現數據與之前的讀取結果不一致。這就是“不可重復讀”。

三、幻讀(Phantom Read):

這更像是你在一個圖書館里找書。你首先數了一下書架上書的數量,然后過了一會兒你再次數,發現書的數量變了,盡管你沒有移動或添加任何書籍。在數據庫中,如果一個事務在讀取某個范圍內的記錄時,另一個事務插入或刪除了某些記錄,導致第一個事務在再次讀取該范圍時看到了之前不存在的“幻影”記錄或發現某些記錄消失了。這就是“幻讀”。

四、總結

  • 臟讀讀取的是未提交的數據。
  • 不可重復讀讀取的是同一行數據,但數據內容已被其他事務修改。
  • 幻讀針對的是多行數據,由于其他事務的插入或刪除操作,導致滿足條件的行數發生了變化

為了解決這些問題,數據庫提供了不同的事務隔離級別,如讀未提交、讀已提交、可重復讀和串行化。每個隔離級別都有其優缺點,選擇哪個級別取決于應用的具體需求和性能考慮。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24545.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24545.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24545.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分布式Shiro,SpringBoot項目Shiro整合Redis

分布式Shiro,SpringBoot項目Shiro整合Redis 重要 Begin 你的SpringBoot項目已經使用了Shiro,并且可以正常使用。本篇文章的主要目的是將Shiro保存在服務器內存中的session信息改為使用Redis保存session信息 重要 End 正文開始 0、前情概要 由于shiro…

Python通過數據驗證功能在Excel文件中創建下拉列表

Excel表格的靈活性和功能性深受各行各業人士的喜愛。在Excel表格中,下拉列表功能是提升數據錄入效率與準確性的一個重要利器,能夠為用戶提供預設的選擇項,限制輸入范圍,避免手動輸入錯誤,還能夠簡化數據錄入過程&#…

Rust : windows下protobuf嘗試

此前dbpystream庫是用python開發 web api。今天在rust中試用一下protobuf。 一、 protobuf編譯器下載 具體見相關文章。沒有編譯器,protobuf無法運行。 windows參見: https://blog.csdn.net/wowotuo/article/details/139458846?spm1001.2014.3001.550…

推薦系統三十六式學習筆記:原理篇.內容推薦05|從文本到用戶畫像有多遠?

目錄 從文本開始構建用戶畫像一、結構化文本1、TF-IDF2、TextRank3、內容分類:4、實體識別5、聚類6、詞嵌入 二、標簽選擇1、卡方檢驗2、信息增益 總結 對于一個早期的推薦系統來說,基于內容推薦離不開用戶構建一個初級的畫像,這種初級的畫像…

【數據結構】棧的應用

目錄 0 引言 1 棧在括號匹配中的應用 2 棧在表達式求值中的應用 2.1 算數表達式 2.2 中綴表達式轉后綴表達式 2.3 后綴表達式求值 3 棧在遞歸中的應用 3.1 棧在函數調用中的作用 3.2 棧在函數調用中的工作原理 4 總結 0 引言 棧(Stack)是一…

MySQL A表的字段值更新為B表的字段值

MySQL A表的字段值更新為B表的字段值 準備數據表 create table person (id int unsigned auto_increment comment 主鍵 primary key,uuid varchar(32) not null comment 系統唯一標識符32個長度的字符串,mobile varchar(11) null comment 中國國內手機號,nickn…

使用 Ollama 和 Open WebUI 自托管 LLM 聊天機器人(無需 GPU)

?點擊這里?:🚀原文鏈接:(更好排版、視頻播放、社群交流、最新AI開源項目、AI工具分享都在這個公眾號!) 使用 Ollama 和 Open WebUI 自托管 LLM 聊天機器人(無需 GPU) &#x1f31…

二叉查找樹詳解

目錄 二叉查找樹的定義 二叉查找樹的基本操作 查找 插入 建立 刪除 二叉樹查找樹的性質 二叉查找樹的定義 二叉查找樹是一種特殊的二叉樹,又稱為排序二叉樹、二叉搜索樹、二叉排序樹。 二叉樹的遞歸定義如下: (1)要么二…

10. MySQL 用戶

文章目錄 【 1. 權限表 】1.1 user 權限表1.1.1 用戶列1.1.2 權限列1.1.3 安全列1.1.4 資源控制列 1.2 db 表用戶列權限列 1.3 tables_priv 表1.4 columns_priv 表1.5 procs_priv表 【 2. 用戶管理 】2.1 創建用戶 CREATE USER2.2 用戶的登陸、退出登陸 MySQL退出 MySQL 2.3 重…

Java常見錯誤-內部類-簡要分析

Java常見錯誤-內部類-簡要分析 概念分類成員內部類(非靜態內部類)靜態內部類成員內部類和靜態內部類區別 局部內部類匿名內部類 注意事項總結 概念 ? 內部類,顧名思義,就是在一個類的內部定義的類。這種設計允許將一個類的實現細…

深度學習-10-測試

深度學習-10-測試 本文是《深度學習入門2-自製框架》 的學習筆記,記錄自己學習心得,以及對重點知識的理解。如果內容對你有幫助,請支持正版,去購買正版書籍,支持正版書籍不僅是尊重作者的辛勤勞動,也是鼓勵…

Web前端ES6-ES13筆記合集(下)

#### 五.ES10新特性 ##### 1. Object.fromEntries > Object.fromEntries()方法允許你輕松地將鍵值對列表轉換為對象 js const arr [["name", "kerwin"], ["age", 100]]; console.log(Object.fromEntries(arr))//{name: kerwin, age: 100} …

pytorch 筆記:pytorch 優化內容(更新中)

1 Tensor創建類 1.1 直接創建Tensor,而不是從Python或Numpy中轉換 不要使用原生Python或NumPy創建數據,然后將其轉換為torch.Tensor直接用torch.Tensor創建或者直接:torch.empty(), torch.zeros(), torch.full(), torch.ones(), torch.…

樹莓派【Raspberry Pi-64位】3b+,Pi4J 2.0入門

一.前言: 前面的文章講解了樹莓派在centos7 arm64版本下的使用,用一款智能小車為例子,做了代碼實踐。 由于centos7不再維護,且Pi4J 1.x版本也因為WiringPi 的局限,Pi4J從1.x升級為2.x.所以本專欄的技術棧也將進行調整,A.從centos7系統回到Raspberry Pi-64位系統。B.Pi4…

4.通用編程概念

目錄 一、變量與常量1.1 變量1.2 常量 二、遮蔽三、數據類型3.1 標量類型1. 整型2. 浮點型3. 布爾類型4.字符類型 3.2 復合類型1. 元組2. 數組 四、函數五、語句和表達式六、函數的返回值 一、變量與常量 1.1 變量 在Rust中默認的變量是不可變的,如果修改其值會導致…

《青少年編程與數學》課程方案:4、課程策略

《青少年編程與數學》課程方案:4、課程策略 一、工程師思維二、使命感驅動三、價值觀引領四、學習現代化五、工作生活化六、與時代共進 《青少年編程與數學》課程策略強調采用工程師思維,避免重復造輪子,培養使命感,通過探索興趣、…

編程語言有哪些?這些希望你都知道

編程語言有哪些 編程語言有很多種,包括但不限于以下幾種: Java:當今最普遍使用的開發語言之一,簡單易學,且跨平臺性非常強,對網絡開發的支持令人稱贊。Python:語法清楚,干凈&#…

【Vue】如何提供訪問vuex的數據

文章目錄 一、提供數據二、訪問Vuex中的數據通過$store訪問的語法1)模板中使用2)組件邏輯中使用3)js文件中使用 三、通過輔助函數 - mapState獲取 state中的數據 一、提供數據 State提供唯一的公共數據源,所有共享的數據都要統一…

[office] 快速刪除excel中的空行和列的方法 #其他#學習方法#經驗分享

快速刪除excel中的空行和列的方法 用戶在網上下載好的Excel表格打開之后發現有很多空白行,怎么樣將這些空白行或單元格一次性刪除掉呢?下面教大家在Excel中用定位一次性可以把空白行刪除 用戶在網上下載好的Excel表格打開之后發現有很多空白行,怎么樣將…

Vue3 使用audio播放語音+監聽播放語音完成事件

需求&#xff1a;輸入一段文字&#xff0c;點擊語音框&#xff0c;將本地語音&#xff08;提前準備好的&#xff09; 播放出來 播放中效果 代碼 <div class"listConAI" click"handleOpenSpeech" ><imgsrc"../../../../assets/images/blueo…