事务相关、不可重复读与幻读的区别
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。
事務(wù)內(nèi)嵌套事務(wù):
? 1) 都用spring事務(wù)時(shí),取決spring采用的事務(wù)的隔離級別。
? ? 這個(gè)默認(rèn)隔離級別是與具體的數(shù)據(jù)庫相關(guān)的,采取的是具體數(shù)據(jù)庫的默認(rèn)隔離級別,不同的數(shù)據(jù)庫是不一樣的。
? ? 如是同一事務(wù),事務(wù)有傳播性:
? ? 在有事務(wù)的方法A內(nèi)執(zhí)行修改,再于A內(nèi)調(diào)用有事務(wù)的方法B執(zhí)行修改同一字段,
? ? B用的是A的事務(wù),可以拿到A手中的寫鎖,2次修改都執(zhí)行成功。?
? 2) 如果方法A用spring的事務(wù),方法B用代碼事務(wù),是2個(gè)不同事務(wù)。
? 3) 在主線程中開子線程,并分別在主、子線程中執(zhí)行修改,則是2個(gè)不同事務(wù),
? 4) 只要是2個(gè)不同的事務(wù),就會造成寫鎖等待。
? ? 只有當(dāng)先拿到寫鎖的修改方法的事務(wù)提交或回滾后,另一個(gè)線程的修改方法才能拿到寫鎖,第2次修改才能執(zhí)行。
??
? 5) 另外:read-only只讀事務(wù)作用:多條查詢SQL必須保證整體的讀一致性,
? ? 否則,在前條SQL查詢之后,后條SQL查詢之前,數(shù)據(jù)被其他用戶改變,
? ? 則該次整體的統(tǒng)計(jì)查詢將會出現(xiàn)讀數(shù)據(jù)不一致的狀態(tài),此時(shí),應(yīng)該啟用只讀事務(wù)支持
? ??
? 6) 事務(wù)ACID四個(gè)屬性;
? ? 原子性(atomicity)、一個(gè)事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中包括的操作要么都做,要么都不做。
? ? 一致性(consistency)、事務(wù)必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。
? ? ? ? ? ? ? ? ? ? ? ? ? 比如:A扣款了,B就收款了。
? ? 隔離性(isolation)、一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不會互相干擾。
? ? 持久性(durability)、指一個(gè)事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。
? ? ? ? ? ? ? ? ? ? ? ? ? 接下來的其他操作或故障不應(yīng)該對其有任何影響。
? ? ? ? ? ? ? ? ? ? ? ? ??
? 7) 默認(rèn)隔離級別: Read Commited--------Sql Server、Oracle.?
? ? ? ? ? ? ? ? ? Repeatable Read ------- MySQL 、InnoDB存儲引擎?
? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? read committed:開啟一個(gè)事務(wù),讀一個(gè)數(shù)據(jù),而后再次讀,這2次可能不一樣的,
? ? ? ? ? ? ? ? ? ? 因?yàn)樵谶@2次讀之間可能有其他事務(wù)更改這個(gè)數(shù)據(jù),這也就是讀提交,
? ? ? ? ? ? ? ? ? ? 每次讀到的數(shù)據(jù)都是已經(jīng)提交的(行級鎖,不鎖間隙)。
? ? ? ? ? ? ? ? ? read repeatable:開啟一個(gè)事務(wù),讀一個(gè)數(shù)據(jù),而后再次讀,這2次讀的數(shù)據(jù)是一致的(行級鎖且是鎖間隙);
? ? ? ? ? ? ? ?
? 8) 不可重復(fù)讀與幻讀的區(qū)別:
? ? 不可重復(fù)讀的重點(diǎn)是修改,同樣的條件,你讀取過的數(shù)據(jù),再次讀取出來發(fā)現(xiàn)字段值不一樣了。
? ? 幻讀的重點(diǎn)在于新增或者刪除,同樣的條件,第 1 次和第 2 次讀出來的記錄總條數(shù)不一樣。
??
總結(jié)
以上是生活随笔為你收集整理的事务相关、不可重复读与幻读的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无任何网络提供程序接受指定的网络路径 o
- 下一篇: 开机自启动win7计划任务