文章詳情頁
spring - mysql中事務是互斥的么?
瀏覽:121日期:2022-06-18 09:50:46
問題描述
分別在不同的線程調用同一個帶事務的方法,那么這兩個方法的執行時互斥的么,即一個方法必須要等另一個方法操作完么?
問題解答
回答1:這個取決于數據庫的隔離級別。兩個事務不互相影響就沒有必要互斥啊。
ISO 標準定義了下列隔離級別,SQL Server 數據庫引擎支持所有這些隔離級別:
未提交讀(隔離事務的最低級別,只能保證不讀取物理上損壞的數據)
已提交讀(數據庫引擎的默認級別)
可重復讀
可序列化(隔離事務的最高級別,事務之間完全隔離)
回答2:當發生了當前讀,都會對相應的行加上排它鎖,并且在事務結束以后釋放鎖
兩次操作事務有對相同的行加排它鎖,其中一個線程就需要等待另外一個線程事務提交才能繼續執行程序
兩次操作事務并沒有有對相同的行加排它鎖的,兩個線程相互不影響
回答3:這首先和你操作的數據有關系,如果操作的數據連個交集都沒有,就是并行的,如果有交集,還跟數據庫的事物隔離級別又關系,這里面東西就多了,你可以查查。
相關文章:
1. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?2. 大家好,請問在python腳本中怎么用virtualenv激活指定的環境?3. 網頁爬蟲 - 用Python3的requests庫模擬登陸Bilibili總是提示驗證碼錯誤怎么辦?4. javascript - 關于audio標簽暫停的問題5. android - QQ物聯,視頻通話6. Matlab和Python編程相似嗎,有兩種都學過的人可以說說嗎7. javascript - 微信小程序封裝定位問題(封裝異步并可能多次請求)8. javascript - Web微信聊天輸入框解決方案9. mysql - 怎么讓 SELECT 1+null 等于 110. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應
排行榜
