首頁 資料庫 mysql教程 不可重複讀和幻讀的差別是什麼

不可重複讀和幻讀的差別是什麼

Apr 21, 2021 pm 05:40 PM
幻讀 資料庫

區別:不可重複讀取的重點是修改;同樣的條件,第1次和第2次讀取的值不一樣。幻讀的重點在於新增或刪除;同樣的條件, 第1次和第2次讀取的記錄數不一樣。從控制角度來看,不可重複讀取只需要鎖住符合條件的記錄,幻讀要鎖住滿足條件及其相近的記錄。

不可重複讀和幻讀的差別是什麼

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

精煉解釋:

無法重複讀取的重點是修改:

##同樣的條件, 你讀取過的資料, 再次讀取出來發現值不一樣了

幻讀的重點在於新增或刪除##同樣的條件, 第1次和第2次讀出來的記錄數不一樣

當然, 從總的結果來看, 似乎兩者都表現為兩次讀取的結果不一致.

但如果你從控制的角度來看, 兩者的差異就比較大

    對於前者, 只需要鎖住滿足條件的記錄
  • ##對於後者, 要鎖定滿足條件及其相近的記錄
#詳細說明:

1) "不可重複讀" 是指在一個事務內,多次讀取相同資料。在這個事務還沒結束時,另外一個事務也存取該相同資料。那麼,在第一個事務中的兩次讀取資料之間,由於第二個事務的修改,那麼第一個事務兩次讀到的的資料可能是不一樣的。這樣就發生了在一個事務內兩次讀到的資料是不一樣的,因此稱為是不可重複讀。例如,一個編輯人員兩次讀取同一文檔,但在兩次讀取之間,作者重寫了該文檔。當編輯人員第二次讀取文件時,文件已更改。原始讀取不可重複。如果只有在作者全部完成編寫後編輯人員才可以讀取文檔,則可以避免該問題

要避免這種情況,通常可以用 set tran isolation level repeatable read 來設定隔離級別,這樣事務A在兩次讀取表T中的資料時,事務B如果企圖更改表T中的資料(細節到事務A讀取資料)時,就會被阻塞,知道事務A提交! 這樣就保證了,事務A兩次讀取的資料的一致性。

2)幻覺讀取是指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的資料進行了修改,這種修改涉及到表中的全部資料行。同時,第二個事務也修改這個表中的數據,這種修改是向表中插入一行新數據。那麼,以後就會發生操作第一個事務的使用者發現表中還有沒有修改的資料行,就好像發生了幻覺一樣。例如,一個編輯人員更改作者提交的文檔,但當生產部門將其更改內容合併到該文檔的主副本時,發現作者已將未編輯的新資料新增至該文檔。如果在編輯人員和生產部門完成原始文件的處理之前,任何人都無法將新資料新增至文件中,則可以避免該問題。

相關免費學習推薦:

mysql影片教學#

以上是不可重複讀和幻讀的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Go語言如何實作資料庫的增刪改查操作? Go語言如何實作資料庫的增刪改查操作? Mar 27, 2024 pm 09:39 PM

Go語言如何實作資料庫的增刪改查操作?

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

在PHP中使用MySQLi建立資料庫連線的詳盡教學

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片

MySQL與PL/SQL的異同比較 MySQL與PL/SQL的異同比較 Mar 16, 2024 am 11:15 AM

MySQL與PL/SQL的異同比較

Hibernate 如何實作多型映射? Hibernate 如何實作多型映射? Apr 17, 2024 pm 12:09 PM

Hibernate 如何實作多型映射?

深入解析HTML如何讀取資料庫 深入解析HTML如何讀取資料庫 Apr 09, 2024 pm 12:36 PM

深入解析HTML如何讀取資料庫

MySQL資料庫管理系統的基本原理解析 MySQL資料庫管理系統的基本原理解析 Mar 25, 2024 pm 12:42 PM

MySQL資料庫管理系統的基本原理解析

Go WebSocket 如何與資料庫整合? Go WebSocket 如何與資料庫整合? Jun 05, 2024 pm 03:18 PM

Go WebSocket 如何與資料庫整合?

See all articles