事務(wù)的四大特性:ACID
1.原子性(Atomicity) : 事務(wù)是一個不可分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生.
2.一致性(Consistency):事務(wù)前后數(shù)據(jù)的完整性必須保持一致.
3.隔離性(Isolation):是指多個用戶并發(fā)訪問數(shù)據(jù)庫時,一個用戶的事務(wù)不能被其他用戶的事務(wù)所干擾,多個并發(fā)事務(wù)之間數(shù)據(jù)要相互隔離.不能相互影響.
4.持久性(Durability):是指一個事務(wù)一旦被提交,他對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的.接下來即使數(shù)據(jù)庫發(fā)生故障也不應(yīng)該對其有任何影響.
臟讀 :
一個事務(wù)讀取到另一個事務(wù)中尚未提交的數(shù)據(jù)
不可重復(fù)讀 :
一個事務(wù)中兩次讀取的數(shù)據(jù)內(nèi)容不一致.要求的是一個事務(wù)中多次讀取時數(shù)據(jù)時一致的,這是事務(wù)update時引發(fā)的問題
幻讀 :
一個事務(wù)中兩次讀取的數(shù)據(jù)的數(shù)量不一致,要求在一個事務(wù)多次讀取的數(shù)據(jù)的數(shù)量是一致的,這是insert或delete時引發(fā)的問題.
解決隔離問題的方案
1.讀未提交(不解決任何問題)
2.讀已提交(解決臟讀,oracle默認解決方案)
3.可重復(fù)讀(解決臟讀和不可重復(fù)讀的問題,mysql默認解決方案)
4.串行化(解決所有問題)