spring - mysql中事務(wù)是互斥的么?
問題描述
分別在不同的線程調(diào)用同一個(gè)帶事務(wù)的方法,那么這兩個(gè)方法的執(zhí)行時(shí)互斥的么,即一個(gè)方法必須要等另一個(gè)方法操作完么?
問題解答
回答1:這個(gè)取決于數(shù)據(jù)庫(kù)的隔離級(jí)別。兩個(gè)事務(wù)不互相影響就沒有必要互斥啊。
ISO 標(biāo)準(zhǔn)定義了下列隔離級(jí)別,SQL Server 數(shù)據(jù)庫(kù)引擎支持所有這些隔離級(jí)別:
未提交讀(隔離事務(wù)的最低級(jí)別,只能保證不讀取物理上損壞的數(shù)據(jù))
已提交讀(數(shù)據(jù)庫(kù)引擎的默認(rèn)級(jí)別)
可重復(fù)讀
可序列化(隔離事務(wù)的最高級(jí)別,事務(wù)之間完全隔離)
回答2:當(dāng)發(fā)生了當(dāng)前讀,都會(huì)對(duì)相應(yīng)的行加上排它鎖,并且在事務(wù)結(jié)束以后釋放鎖
兩次操作事務(wù)有對(duì)相同的行加排它鎖,其中一個(gè)線程就需要等待另外一個(gè)線程事務(wù)提交才能繼續(xù)執(zhí)行程序
兩次操作事務(wù)并沒有有對(duì)相同的行加排它鎖的,兩個(gè)線程相互不影響
回答3:這首先和你操作的數(shù)據(jù)有關(guān)系,如果操作的數(shù)據(jù)連個(gè)交集都沒有,就是并行的,如果有交集,還跟數(shù)據(jù)庫(kù)的事物隔離級(jí)別又關(guān)系,這里面東西就多了,你可以查查。
相關(guān)文章:
1. 數(shù)組按鍵值封裝!2. java - web項(xiàng)目中,用戶登陸信息存儲(chǔ)在session中好 還是cookie中好,取決于什么?3. angular.js - webpack build后的angularjs路由跳轉(zhuǎn)問題4. Mysql取下一條記錄5. mysql - 查詢字段做了索引為什么不起效,還有查詢一個(gè)月的時(shí)候數(shù)據(jù)都是全部出來的,如果分拆3次的話就沒問題,為什么呢。6. mysql - 大部分?jǐn)?shù)據(jù)沒有行溢出的text字段是否需要拆表7. 老師,怎么不講一次性添加多個(gè)數(shù)據(jù)8. python - linux 下用wsgifunc 運(yùn)行web.py該如何修改代碼9. pdo - mysql 簡(jiǎn)單注入疑問10. 表格對(duì)其 只涉及到對(duì)其,沒有涉及到大小,長(zhǎng)寬還有背景色類的嗎
