最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

數(shù)據(jù)庫事務(wù)四個特性

來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 10:19:59
文檔

數(shù)據(jù)庫事務(wù)四個特性

數(shù)據(jù)庫事務(wù)四個特性:數(shù)據(jù)庫事務(wù)四個特性 數(shù)據(jù)庫事務(wù)需要滿足四個特性,ACID,即原子性(Atomic),一致性(Consistency),隔離性(Isolation),持久性(Durability)。 在關(guān)系數(shù)據(jù)庫中,這些特性需要借助借助redo log、鎖、snapshot等手段來實現(xiàn)。 隔離性要求各事務(wù)之間相互獨
推薦度:
導讀數(shù)據(jù)庫事務(wù)四個特性:數(shù)據(jù)庫事務(wù)四個特性 數(shù)據(jù)庫事務(wù)需要滿足四個特性,ACID,即原子性(Atomic),一致性(Consistency),隔離性(Isolation),持久性(Durability)。 在關(guān)系數(shù)據(jù)庫中,這些特性需要借助借助redo log、鎖、snapshot等手段來實現(xiàn)。 隔離性要求各事務(wù)之間相互獨

數(shù)據(jù)庫事務(wù)四個特性 數(shù)據(jù)庫事務(wù)需要滿足四個特性,ACID,即原子性(Atomic),一致性(Consistency),隔離性(Isolation),持久性(Durability)。 在關(guān)系數(shù)據(jù)庫中,這些特性需要借助借助redo log、鎖、snapshot等手段來實現(xiàn)。 隔離性要求各事務(wù)之間相互獨立,所進

數(shù)據(jù)庫事務(wù)四個特性

數(shù)據(jù)庫事務(wù)需要滿足四個特性,ACID,即原子性(Atomic),一致性(Consistency),隔離性(Isolation),,持久性(Durability)。

在關(guān)系數(shù)據(jù)庫中,這些特性需要借助借助redo log、鎖、snapshot等手段來實現(xiàn)。

隔離性要求各事務(wù)之間相互獨立,所進行的操作不會相互影響,其用意還是保證各數(shù)據(jù)讀寫操作的一致性

標準SQL92規(guī)范定義了四種隔離級別,以及相應(yīng)要禁止的三種現(xiàn)象(Phenomena)。

隔離級別越高,數(shù)據(jù)一致性的保證越強,但同時數(shù)據(jù)庫的并發(fā)能力也越差。 數(shù)據(jù)庫并發(fā)操作引起的問題(現(xiàn)象 ) 有:

1. 臟讀(Dirty read)。

事務(wù)A讀取了事務(wù)B中尚未提交的數(shù)據(jù)。如果事務(wù)B回滾,則A讀取使用了錯誤的數(shù)據(jù)。

2. 不可重復度(Unrepeatable read)。

在事務(wù)A多次的讀取過程中,事務(wù) B對數(shù)據(jù)進行了修改,導致事務(wù)A多次讀取的數(shù)據(jù)不一致。

3. 幻讀(Phantom read)。

在事務(wù)A多次讀取構(gòu)成中,事務(wù)B對數(shù)據(jù)進行了新增操作,導致事務(wù)A多次讀取的數(shù)據(jù)不一致?;米x和不可重復讀的區(qū)別在于,

不可重復是針對記錄的update操作,只要在記錄上加寫鎖,就可避免;幻讀是對記錄的insert操作,

要禁止幻讀必須加上全局的寫鎖(比如在表上加寫鎖)。 另外說一下兩類丟失更新:

4. 第一類丟失更新(回滾丟失,Lost update)。

在事務(wù)A期間,事務(wù) B對數(shù)據(jù)進行了更新;在事務(wù)A撤銷之后,覆蓋了事務(wù)B已經(jīng)提交的數(shù)據(jù)。SQL92沒有定義這種現(xiàn)象,標準定義的所有隔離界別都不允許第一類丟失更新發(fā)生。

5. 第二類丟失更新(覆蓋丟失, Second lost update)。

在事務(wù)A期間,事務(wù)B對數(shù)據(jù)進行了更新;在事務(wù)A提交之后,覆蓋了事務(wù)B已經(jīng)提交的數(shù)據(jù)。第二類丟失更新,實際上和不可重復讀是同一種問題。

SQL92定義的四種隔離級別:

1. 未提交讀(Read uncommitted)。

寫操作加寫鎖,讀操作不加鎖。禁止第一類丟失更新,但是會出現(xiàn)所有其他數(shù)據(jù)并發(fā)問題。

2.提交讀(Read committed)。

寫操作加寫鎖,讀操作加讀鎖。禁止第一類丟失更新和臟讀。這是大部分關(guān)系數(shù)據(jù)庫的默認 隔離級別。

3.可重復讀(Read repeatable)。

對于讀操作加讀鎖到事務(wù)結(jié)束,其他事務(wù)的更新操作只能等到事務(wù)結(jié)束之后進行。和提交 讀的區(qū)別在于,

提交讀的讀操作是加讀鎖到本次讀操作結(jié)束,可重復讀的鎖粒度更大。禁止兩類丟失更新,禁止臟讀和不可 重復度,但是可能出現(xiàn)幻讀.

4.序列化(Serializable)。

讀操作加表級讀鎖至事務(wù)結(jié)束??梢越够米x。

第一類丟失更新 不可重復讀 臟讀 第二類丟失更新 幻讀

Read uncommitted 禁止 不禁止 不禁止 不禁止 不禁止

Read committed 禁止 禁止 不禁止 不禁止 不禁止

Read repeatable 禁止 禁止 禁止 禁止 不禁止

Serializable 禁止 禁止 禁止 禁止 禁止

大多數(shù)關(guān)系數(shù)據(jù)庫默認使用Read committed的隔離級別,Mysql InnoDB默認使用Read repeatable的隔離級別,

這和Mysql replication 機制使用Statement日志格式有關(guān)。各數(shù)據(jù)庫隔離級別的實現(xiàn)也是有差別的,

例如Oracle支持Read committed 和Serializable兩種隔離級別,

另外可以通過使用讀快照在Read committed級別上禁止不可重復讀問題;

Mysql InnoDB在Read repeatable級別上使用next-key locking 策略來避免幻讀現(xiàn)象的產(chǎn)生。

posted on

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

數(shù)據(jù)庫事務(wù)四個特性

數(shù)據(jù)庫事務(wù)四個特性:數(shù)據(jù)庫事務(wù)四個特性 數(shù)據(jù)庫事務(wù)需要滿足四個特性,ACID,即原子性(Atomic),一致性(Consistency),隔離性(Isolation),持久性(Durability)。 在關(guān)系數(shù)據(jù)庫中,這些特性需要借助借助redo log、鎖、snapshot等手段來實現(xiàn)。 隔離性要求各事務(wù)之間相互獨
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top