当前位置: 首页>Php>正文

mysql數據庫臟讀解決方案,數據庫事務臟讀、幻讀、不可重復讀的解決方法

mysql數據庫臟讀解決方案,數據庫事務臟讀、幻讀、不可重復讀的解決方法

概念

  • 臟讀:臟讀又稱無效數據的讀出,是指在數據庫訪問中,事務T1將某一值修改,然后事務T2讀取該值,此后T1因為某種原因撤銷對該值的修改,這就導致了T2所讀取到的數據是無效的。

  • 幻讀
    幻讀是指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據進行了修改,比如這種修改涉及到表中的“全部數據行”。同時,第二個事務也修改這個表中的數據,這種修改是向表中插入“一行新數據”。那么,以后就會發生操作第一個事務的用戶發現表中還存在沒有修改的數據行,就好象發生了幻覺一樣。

  • 不可重復讀
    事務A首先讀取了一條數據,然后執行邏輯的時候,事務B將這條數據改變了,然后事務A再次讀取的時候,發現數據不匹配了,就是所謂的不可重復讀了。

  • mysql數據庫臟讀解決方案。丟失的修改
    兩個事務同時修改同一行數據并提交,其中一個事務覆蓋了另一事務的修改。

解決方法

以上出現的都是數據庫事務隔離級別的問題,SQL標準定義了事務隔離級別分為四種(級別遞減):

  • Serializable (串行化):最嚴格的級別,事務串行執行,資源消耗最大;簡言之,它是在每個讀的數據行上加上共享鎖,但可能導致大量的超市現象和鎖競爭。

  • REPEATABLE READ(可重復讀) :保證了一個事務不會修改已經由另一個事務讀取但未提交(回滾)的數據。避免了“臟讀取”和“不可重復讀取”的情況,但不能避免“幻讀”,但是帶來了更多的性能損失。

  • 數據庫臟讀怎么解決,READ COMMITTED (提交讀):大多數主流數據庫的默認事務等級,保證了一個事務不會讀到另一個并行事務已修改但未提交的數據,避免了“臟讀取”,但不能避免“幻讀”和“不可重復讀取”。該級別適用于大多數系統。

  • Read Uncommitted(未提交讀) :事務中的修改,即使沒有提交,其他事務也可以看得到,會導致“臟讀”、“幻讀”和“不可重復讀取”。

隔離級別臟讀幻讀不可重復讀
Read Uncommitted(未提交讀)可能可能可能
Read Commited (已提交讀)不可能可能可能
Repeatable Read(可重復讀)不可能可能不可能
Serializable (串行化)不可能不可能不可能

修改Mysql的事務隔離級別

# 修改配置文件
cd /etc/mysql/mysql.conf.d/
sudo vim mysqld.cnf# 添加以下代碼
transaction-isolation=READ-COMMITTED

在Oracle,SqlServer中都是選擇讀已提交(Read Commited)作為默認的隔離級別,而Mysql卻選擇可重復讀(Repeatable Read)作為默認隔離級別

https://www.nshth.com/php/338372.html
>

相关文章:

  • mysql數據庫臟讀解決方案
  • 數據庫臟讀怎么解決
  • innodb如何解決幻讀
  • 如何防止臟讀
  • 在數據庫中如何避免幻讀
  • 數據庫幻讀是什么
  • 幻讀和臟讀
  • sql數據庫幻讀
  • 語言使用排行榜,PHP2020語言排行榜,TIOBE公布了2020年12月編程語言排行榜
  • 你好,爬取《你好,李煥英》影評,并生成詞云圖
  • php手冊中文版,PHP筆記 17 18 19 20 21
  • ubuntu怎么切換中文輸入法,ubuntu系統配置中文輸入法以及安裝ros2,docker等開發環境
  • qt設置控件在布局的位置,Qt自定義控件(IP輸入框,windows下)
  • 計算機初級考試內容自測題,計算機基礎知識考題及答案,計算機基礎知識試題及答案(一)
  • 商標查詢,龍門標局:R商標是指什么?購買的商標能標注R嗎?
  • 蘇州注冊公司流程和步驟,蘇州企業拿到商標注冊證后,需要注意哪些事項?
  • 注冊一個商標要多久可以批下來,2022年商標注冊需要多長時間?
  • testflight教程,【技術分享】TestFlight測試的流程文檔
  • ios開發者測試版,iOS APP真機測試及上架App Store流程記錄
  • iphone怎么安裝證書,Windows申請iOS證書上架App Store詳細教程 (有這一篇就夠了)
  • 銀河證券章俊,章俊
  • 央行定向降準是什么意思,央行工作會議說了什么:定向調控 松緊適度
  • 機械制造及其自動化畢業設計,計算機在機械設制造中的應用實例,機械設計與制造畢業設計一體化分析
  • 問句和疑問句的區別,問句識別:基于Xgboost的中文疑問句判斷模型
  • 多線程sleep和wait的區別,非wait線程即時喚醒epoll_wait
  • 服務器終端,服務器TIME_WAIT和CLOSE_WAIT區別及解決方案
  • linux查看最大連接數,linux表示文件連接數,linux中連接數過多(TIME_WAIT/CLOSE_WAIT)讀這一篇就夠了
  • 視頻渲染用什么顯卡,Android視頻解碼及渲染
  • 百家號視頻怎么算原創,百家號基于AE的視頻渲染技術探索
  • 視頻制作,常見幾種視頻渲染模式介紹
  • 電子商務運營技能大賽,2022年ITMC暢享杯全國職業院校電子商務技能大賽SEM直通車競賽平臺介紹思路打法
  • Android基礎入門教程,花2萬塊買的教程!Android技術功底不夠如何去面試,大廠直通車!
  • 拼多多直通車出價技巧,直通車拼多多7天均價比價
  • flutter開發小程序,寫給程序員的Flutter詳細教程,大廠直通車!
  • 聚合支付是什么東西,聚合支付行業術語,你get到了嗎?
  • 支付行業發展現狀及趨勢,支付行業的一些名詞
  • 調和級數時間復雜度,51nod 1421 最大MOD值(高妙的調和級數復雜度)
  • mysql數據庫臟讀解決方案,數據庫事務臟讀、幻讀、不可重復讀的解決方法