事務併發產生的問題:
髒讀:一個事務讀取到了另外一個事務沒有提交的數據
事務1:更新一條數據
------------->事務2:讀取事務1更新的記錄
事務1:調用commit進行提交
***此時事務2讀取到的數據是保存在數據庫內存中的數據,稱爲髒讀。
***讀到的數據爲髒數據
詳細解釋:
髒讀就是指:當一個事務正在訪問數據,並且對數據進行了修改,而這種修改還沒有提交到數據庫中,這時,
另外一個事務也訪問這個數據,然後使用了這個數據。因爲這個數據是還沒有提交的數據,那麼另外一個
事務讀到的這個數據是髒數據,依據髒數據所做的操作可能是不正確的。
不可重複讀:在同一事務中,兩次讀取同一數據,得到內容不同
事務1:查詢一條記錄
-------------->事務2:更新事務1查詢的記錄
-------------->事務2:調用commit進行提交
事務1:再次查詢上次的記錄
***此時事務1對同一數據查詢了兩次,可得到的內容不同,稱爲不可重複讀
幻讀:同一事務中,用同樣的操作讀取兩次,得到的記錄數不相同
事務1:查詢表中所有記錄
-------------->事務2:插入一條記錄
-------------->事務2:調用commit進行提交
事務1:再次查詢表中所有記錄
***此時事務1兩次查詢到的記錄是不一樣的,稱爲幻讀
詳細解釋:
幻讀是指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據進行了修改,
這種修改涉及到表中的全部數據行。同時,第二個事務也修改這個表中的數據,這種修改是向表
中插入一行新數據。那麼,以後就會發生操作第一個事務的用戶發現表中還有沒有修改的數據行,
就好象發生了幻覺一樣。
事務產生的髒讀幻讀不可重複讀
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
深入理解Spring事務的傳播行爲
ゞ .邓澎波
2019-02-24 12:42:54
全方位深度剖析PHP7底层源码
wy53780
2020-04-23 15:39:33
Redis主從複製以及主從複製原理
LoyaltyLu
2019-02-24 23:12:38
nginx+php執行請求的工作原理
xavier
2019-02-24 15:52:41
配置Nginx支持php,出現No input file specified錯誤的解決方法
lvqingpu
2019-02-24 13:15:35
PHP7源碼編譯安裝詳解
揚那個楊
2019-02-24 12:59:32
windows下配置php
jason1982
2019-02-24 12:57:09
PHP hebrev()函數用法講解
php参考手册
2019-02-24 12:43:05
php中file_get_contents()函數用法實例
laozhang
2019-02-24 12:43:05
PHP中的pack和unpack函數
tlanyan
2019-02-24 12:35:02
<<深入PHP面向對象、模式與實踐>>讀書筆記:面向對象設計和過程式編程
tusi
2019-02-23 17:14:59
【PHP源碼分析】small內存規格的計算
LNMPR源碼研究
2019-02-23 16:42:36
源碼分析(五)—配置篇
瀟塵淵
2019-02-23 15:22:46
ASP、JSP、PHP 三種技術比較
lichenjing9
2019-02-23 14:06:52