事務就是指一系列的資訊交換操作,這整個過程稱為事務,這一系列的資訊交換是乙個不可分割的整體,也就是說,要麼所有的資訊交換都完成,要麼一次交換都不進行(要麼完全成功,要麼完全失敗)
transaction[trans'ac·tion || træn'zækʃn]
n. 交易, 執行, 辦理
a:atomicity 原子性 事務中所有的操作都是不可再分割的單位,要麼全成功,要麼全失敗
c:consistency 一致性 萬物守恆定律 轉賬,一方多了,一方必然要少了
i:isolation 隔離性 在併發操作中,不同的事務之間應該隔離開來,不能相互干擾
d:durability 永續性 一旦事務提交成功,事務中所有的資料操作都必須要被持久化到資料庫中
資料庫測試表字段值原本為1000
a事務給num加500
b事務讀取num的值(1000)
a事務提交修改(此時測試表中num的值為1500)
但是b拿到的num是1000,此時稱為髒讀
資料庫測試表字段num值原本為1000
a事務查詢num的值(num為1000)
b事務給num加500
b事務提交修改(此時測試表中num的值為1500)
a事務再次查詢num的值(num為1500)
a事務兩次查詢的值不一樣,此時稱為不可重複讀(因為重複讀時資料卻每次都不一樣)
資料庫測試表本來有5條資料
a事務查詢測試表(5條)
b事務向測試表插入一條資料
b事務提交修改(此時測試表中有了6條資料)
a事務再次查詢測試表(6條)
a事務兩次查詢表得到的結果不一樣,就像產生了幻覺,此時稱為幻讀
1,序列化:效能最差,但是不會出現任何併發問題,因為它對同一資料的操作是序列的,非併發訪問 serializable
2,可重複讀:mysql預設 可以處理髒讀和不可重複讀,無法處理幻讀,效能比1好 repeatable read
3,讀已提交:oracle預設 可以處理髒讀,無法處理不可重複讀,幻讀,效能比2好 read committed
4,讀未提交:效能最好,但是可能引發各種併發問題 read uncommitted
定義:當事務方法被另乙個事務方法呼叫時,必須指定事務應該如何傳播,是用原來的事務,還是開啟乙個新事務
spring定義了7種傳播行為
預設是required:如果有事務在執行,當前方法就在這個事務中執行,否則,就開啟乙個新事務,並在自己的事務內執行
第二種是requires_new:當前方法必須啟動新事務,並在它自己的事務中執行,如果有事務正在執行,應該將它掛起
還有34567,一般人也記不住,常用的是前兩種
什麼是事務
一 什麼是事務 事務是應用程式中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,乙個事務中的一系列的操作要麼全部成功,要麼乙個都不做。事務的結束有兩種,當事務中的所以步驟全部成功執行時,事務提交。如果其中乙個步驟失敗,將發生回滾操作,撤消撤消之...
什麼是事務
所謂事務,就是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。開啟用begin,關閉用commit 事務的四大特性 acid 1.原子性a 做一件事情要麼成功要麼不成功 2.一致性c 你中間除了問題也不會出現這個資料丟了的情況 3.隔離性i 兩個sql語句之間不會相互影響...
什麼是事務?
事務 transaction 是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,十乙個不可分割的工作單位。通過事務,sql server能將邏輯相關的一組操作繫結在一起。事務通常是以begin transaction開始,以commit或rollback結束。commit表...