无码人妻A片一区二区三区_18禁裸乳无遮挡啪啪无码免费_91精品亚?影视在线?看_人人妻人人爽人人澡AV_国产精品人妻一区二区三区四区_午夜免费影视

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 數(shù)據(jù)庫 > 國產(chǎn)數(shù)據(jù)庫與Oracle數(shù)據(jù)庫事務(wù)差異分析

國產(chǎn)數(shù)據(jù)庫與Oracle數(shù)據(jù)庫事務(wù)差異分析

2025-04-17 16:10:00 | 來源:企業(yè)IT培訓(xùn)

數(shù)據(jù)庫中的ACID是事務(wù)的基本特性,而在Oracle等數(shù)據(jù)庫遷移到國產(chǎn)數(shù)據(jù)庫國產(chǎn)中,可能因?yàn)椴煌瑪?shù)據(jù)庫事務(wù)處理機(jī)制的不同,在遷移后的業(yè)務(wù)邏輯處理上存在差異。本文簡要介紹了事務(wù)的ACID屬性、事務(wù)的隔離級別、回滾機(jī)制和超時(shí)機(jī)制,并總結(jié)SAVEPOINT的使用,以總結(jié)。

1、數(shù)據(jù)庫中事務(wù)基本概念

事務(wù)是數(shù)據(jù)庫中的基本邏輯操作單元,由一組不可分割的數(shù)據(jù)庫操作序列組成,這些操作要么全部成功執(zhí)行,要么全部失敗回滾。其核心目的是確保數(shù)據(jù)的完整性和一致性,尤其在并發(fā)操作或系統(tǒng)故障時(shí)維護(hù)數(shù)據(jù)庫的可靠狀態(tài)。

1.1 事務(wù)基本屬性

ACID是事務(wù)的基本特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。

原子性:事務(wù)中的所有操作必須作為一個(gè)整體執(zhí)行,要么全部執(zhí)行成功、要么全部失敗回滾,不允許出現(xiàn)部分成功的情況。在數(shù)據(jù)庫中通常是通過日志記錄(如undo log)來實(shí)現(xiàn)回滾操作,若事務(wù)執(zhí)行失敗,系統(tǒng)跟進(jìn)日志撤銷已執(zhí)行的操作。

一致性:事務(wù)執(zhí)行前后,數(shù)據(jù)庫必須保持一致性狀態(tài)。所有數(shù)據(jù)必須滿足預(yù)定義的完整性約束(如主鍵、外鍵、唯一性約束等)。即使事務(wù)失敗,數(shù)據(jù)庫也不能破壞這些規(guī)則。在數(shù)據(jù)庫中通過一些約束和檢查來確保數(shù)據(jù)庫的完整性約束。

隔離性:多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),每個(gè)事務(wù)的操作應(yīng)與其他事務(wù)相互隔離,使得每個(gè)事務(wù)感覺不到其他事務(wù)的存在,最終效果應(yīng)與事務(wù)串行執(zhí)行的結(jié)果一致。數(shù)據(jù)庫中通過鎖機(jī)制(Locking)或多版本并發(fā)控制(MVCC)實(shí)現(xiàn),不同的隔離級別提供不同程度的隔離性。

持久性:事務(wù)一旦提交,其對數(shù)據(jù)庫的修改就是永久性的,即使系統(tǒng)發(fā)生故障(如斷電、崩潰),修改也不會丟失。數(shù)據(jù)庫中通過重做日志(Redo Log)實(shí)現(xiàn)持久性。提交事務(wù)時(shí),對數(shù)據(jù)的修改首先寫入日志,再異步寫入數(shù)據(jù)庫文件中。當(dāng)數(shù)據(jù)庫崩潰恢復(fù)時(shí),通過重放日志恢復(fù)數(shù)據(jù)。

以轉(zhuǎn)賬交易為例,通過undo日志實(shí)現(xiàn)原子性,確保“扣款”和“存款”兩個(gè)操作要么全部成功,要么全部失敗;一致性是確保轉(zhuǎn)賬前后,數(shù)據(jù)庫必須滿足業(yè)務(wù)規(guī)則(如余額不為負(fù)、總額不變);通過鎖機(jī)制和MVCC多版本并發(fā)控制來實(shí)現(xiàn)事務(wù)的隔離性,多個(gè)并發(fā)轉(zhuǎn)賬操作互不干擾,結(jié)果與串行執(zhí)行一致;持久性則是一旦轉(zhuǎn)賬成功,即使系統(tǒng)崩潰,修改也不會丟失。

1.2 事務(wù)回滾機(jī)制

事務(wù)的原子性要求事務(wù)要么全部執(zhí)行成功、要么全部執(zhí)行失敗回滾,但是對于Oracle數(shù)據(jù)庫支持語句級的原子性,也就是一個(gè)事務(wù)中單個(gè)語句執(zhí)行失敗,則只會回滾該語句執(zhí)行的操作,不會導(dǎo)致在當(dāng)前事務(wù)中丟失之前的任何工作。如果需要回滾整個(gè)事務(wù),需要處理錯(cuò)誤并且主動調(diào)用ROLLBACK。這種語句級的回滾對于處理一些長時(shí)間運(yùn)行的批處理任務(wù)有用,邏輯上希望能夠處理錯(cuò)誤,不需要回滾已經(jīng)完成的所有操作。

1.3 事務(wù)超時(shí)機(jī)制

數(shù)據(jù)庫中事務(wù)會設(shè)置不同的超時(shí)機(jī)制,防止因?yàn)槌霈F(xiàn)等鎖而出現(xiàn)無限等待,超過這個(gè)時(shí)間后會出現(xiàn)等鎖超時(shí),事務(wù)會回滾。

Oracle數(shù)據(jù)庫:默認(rèn)不會主動終止因行鎖等待而阻塞的事務(wù),事務(wù)會無限期等待鎖釋放,需由應(yīng)用層處理或手動終止,行鎖在事務(wù)提交或回滾是自動釋放;事務(wù)默認(rèn)也無超時(shí)設(shè)置,但是可以限制會話的空閑時(shí)間,超過時(shí)間后會斷開鏈接。

MySQL數(shù)據(jù)庫:通過 innodb_lock_wait_timeout 控制,默認(rèn)為50秒。當(dāng)事務(wù)等待鎖超過此時(shí)間時(shí),會拋出錯(cuò)誤;事務(wù)中無默認(rèn)超時(shí)時(shí)間,但是連接的空閑超時(shí)設(shè)置wait_timeout,默認(rèn)8小時(shí)。

PostgreSQL:通過pg_lock_timeout設(shè)置行鎖等待超時(shí)時(shí)間,默認(rèn)為0無限等待;事務(wù)中設(shè)置statement_timeout 控制單條SQL執(zhí)行時(shí)間,默認(rèn)無限制。

TiDB:兼容MySQL行鎖等待設(shè)置;如果是悲觀事務(wù),默認(rèn)TTL(Time-To-Live)為 1小時(shí),超時(shí)后自動回滾,另外通過tidb_idle_transaction_timeout 控制空閑事務(wù)。

OceanBase:MySQL模式下兼容MySQL設(shè)置;事務(wù)中通過 ob_query_timeout 控制事務(wù)單條語句執(zhí)行時(shí)間,默認(rèn)1800s

GoldenDB:兼容MySQL設(shè)置

GaussDB:參數(shù)lockwait_timeout控制單個(gè)鎖的最長等待時(shí)間,當(dāng)申請的鎖等待時(shí)間超過設(shè)定值時(shí),系統(tǒng)會報(bào)錯(cuò),默認(rèn)為20min;通過通過 statement_timeout 控制單個(gè)語句執(zhí)行時(shí)長,默認(rèn)0表示不控制。

主站蜘蛛池模板: 久久无码中文字幕免费影院蜜桃 | 日本看片网址 | 1000部拍拍拍18勿入免费视频 | 欧美一区3 | 综合亚洲另类欧美久久成人精品 | 久久久久成人免费 | 久久久久久久高清 | 国产精品久久久久一区 | 国产乱码人妻一区二区三区 | 亚洲国产视频在线观看 | 国产农村一国产农村无码毛片 | 欧美精品99无码一区二区 | 91一级片 | 牛鞭擦进少妇的下身 | 中文无码不卡中文字幕 | 国产精品久久久久久久久久久不卡 | 国产综合片| 美国理论片a级在线观看 | 色窝窝色蝌蚪在线视频 | 69堂视频在线观看免费 | 一级黄色录像视频 | 女同久久精品国产99国产精品 | 激情综合色综合啪啪五月丁香搜索 | 久久99精品久久久久婷综合 | 国产精品十八禁在线观看 | 精品人妻无码一区二区三区在线 | 99都是精品| 日韩激情在线小视频观看 | 69中国xxxxxxxxx18| 国产乱码精品1区2区3区 | 欧美日韩精品一区二区久久 | avav在线看 | 成人午夜福利视频镇东影视 | 天天做天天爱天天爽天天综合 | 偷窥自拍五月天 | 成片免费观看视频大全 | 亚洲国产精品久久久久婷婷图片 | 在线观看亚洲成人 | 亚洲AV嫩草AV极品A片 | 麻豆一区产品精品蜜桃的特点 | 17草网站|