一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

數(shù)據(jù)并發(fā)與事務(wù)隔離

  一、數(shù)據(jù)并發(fā)帶來(lái)的各種情況 

 ?、倥K讀:事務(wù)A讀到事務(wù)B尚未提交的數(shù)據(jù),并基于這個(gè)數(shù)據(jù)進(jìn)行后續(xù)操作

 ?、诓豢芍貜?fù)讀:事務(wù)A讀取數(shù)據(jù)后,被事務(wù)B修改或刪除,事務(wù)A再次讀取時(shí)前后兩次讀取的數(shù)據(jù)不一致

 ?、刍孟褡x:事務(wù)A讀取數(shù)據(jù)后,事務(wù)B新增了數(shù)據(jù),事務(wù)A再次讀取是前后兩次讀取的數(shù)據(jù)不一致

  不可重復(fù)讀和幻想讀的區(qū)別:

  幻象讀和不可重復(fù)讀是兩個(gè)容易混淆的概念,前者是指讀到了其它已經(jīng)提交事務(wù)的新增數(shù)據(jù),而后者是指讀到了已經(jīng)提交事務(wù)的更改數(shù)據(jù)(更改或刪除),為了避免這兩種情況,采取的對(duì)策是不同的,防止讀取到更改數(shù)據(jù),只需要對(duì)操作的數(shù)據(jù)添加行級(jí)鎖,阻止操作中的數(shù)據(jù)發(fā)生變化,而防止讀取到新增數(shù)據(jù),則往往需要添加表級(jí)鎖——將整個(gè)表鎖定,防止新增數(shù)據(jù)(Oracle使用多版本數(shù)據(jù)的方式實(shí)現(xiàn))。

 ?、艿谝活惛聛G失:事務(wù)A和事務(wù)B同時(shí)訪問(wèn)同一個(gè)數(shù)據(jù),事務(wù)B先提交修改,事務(wù)A回滾操作。導(dǎo)致事務(wù)B的修改丟失

 ?、莸诙惛聛G失:事務(wù)A和事務(wù)B同時(shí)訪問(wèn)同一個(gè)數(shù)據(jù),事務(wù)B先提交修改,事務(wù)A再提交。導(dǎo)致事務(wù)B的修改被覆蓋

  第一類更新丟失是很嚴(yán)重的操作,如果控制不當(dāng),可能導(dǎo)致在一個(gè)長(zhǎng)時(shí)間的大型事務(wù)中,所有的操作都被回滾。所以所有的數(shù)據(jù)庫(kù)都不支持這種并發(fā)情況。
  二、數(shù)據(jù)庫(kù)的鎖機(jī)制
  從鎖的作用范圍來(lái)分,可以分為:行級(jí)鎖和表級(jí)鎖
  從鎖的排他性來(lái)分,可以分為:共享鎖和獨(dú)占鎖(排他鎖),其中共享鎖允許共享,但阻止獨(dú)占鎖。獨(dú)占鎖不但不允許共享鎖,且不允許其它獨(dú)占鎖

  于是組合起來(lái)就有:
 ?、傩泄蚕礞i:允許多個(gè)會(huì)話共享鎖定的行數(shù)據(jù),但不允許對(duì)這些行的獨(dú)占鎖。例如select ...for update

 ?、谛歇?dú)占鎖:對(duì)行進(jìn)行獨(dú)占,不允許其它的共享鎖(表,行)、獨(dú)占鎖(表,行)和表共享行獨(dú)占鎖。例如insert,update

 ?、郾砉蚕礞i:允許多個(gè)會(huì)話共享表數(shù)據(jù),但不允許其它的獨(dú)占鎖(表,行)、表共享行獨(dú)占鎖??梢詫?shí)現(xiàn)表級(jí)事務(wù)一致性

 ?、鼙愍?dú)占鎖:對(duì)表進(jìn)行獨(dú)占,不允許其它的共享鎖(表,行)、讀占鎖(表,行)和表共享行獨(dú)占鎖。達(dá)到序列化操作級(jí)別

  ⑤表共享行獨(dú)占鎖:允許多個(gè)會(huì)話共享表數(shù)據(jù),但同一時(shí)刻只能有一個(gè)行獨(dú)占鎖。可以達(dá)到數(shù)據(jù)共享同時(shí)防止臟讀、不可重復(fù)讀、幻像讀
  表共享鎖定可以讓會(huì)話具有對(duì)表事務(wù)級(jí)一致性訪問(wèn),因?yàn)槠渌鼤?huì)話在你提交或者回溯該事務(wù)并釋放對(duì)該表的鎖定之前不能更改這個(gè)被鎖定的表(因?yàn)橐薷谋淼挠涗洠捅仨毇@得行獨(dú)占鎖,但是共享鎖會(huì)阻止獨(dú)占鎖的獲取,這樣原來(lái)其它正在讀取表記錄的事務(wù)就不會(huì)出現(xiàn)臟讀、不可重復(fù)讀、幻像讀的情況了);
  表共享行獨(dú)占鎖與其不同則是多了一個(gè)行獨(dú)占,這樣效率更高。

  三、事務(wù)隔離級(jí)別

  盡管數(shù)據(jù)庫(kù)為用戶提供了鎖的DML操作方式,但直接使用鎖管理是非常麻煩的,因此數(shù)據(jù)庫(kù)為用戶提供了自動(dòng)鎖機(jī)制。只要用戶指定會(huì)話的事務(wù)隔離級(jí)別,數(shù)據(jù)庫(kù)就會(huì)分析事務(wù)中的SQL語(yǔ)句,然后自動(dòng)為事務(wù)操作的數(shù)據(jù)資源添加上適合的鎖。此外數(shù)據(jù)庫(kù)還會(huì)維護(hù)這些鎖,當(dāng)一個(gè)資源上的鎖數(shù)目太多時(shí),自動(dòng)進(jìn)行鎖升級(jí)以提高系統(tǒng)的運(yùn)行性能,而這一過(guò)程對(duì)用戶來(lái)說(shuō)完全是透明的
  下面是ANSI ISO92定義的4個(gè)事務(wù)隔離級(jí)別以及對(duì)應(yīng)的對(duì)數(shù)據(jù)并發(fā)的處理

  READ COMMITITED:不允許讀取未提交的數(shù)據(jù),但可以讀取已提交的數(shù)據(jù)。所以可能出現(xiàn)不可重復(fù)讀、和幻像讀(讀的過(guò)程依然可以被修改、增加、刪除)

  REPEATABLE READ:通過(guò)行鎖定,在讀的數(shù)據(jù)不允許其它進(jìn)程修改。確保已讀取的數(shù)據(jù)不被修改、刪除(不可重復(fù)讀)但無(wú)法阻止其它進(jìn)程寫(xiě)入新數(shù)據(jù),所以不能確保讀取到新的數(shù)據(jù)(幻像讀)

it知識(shí)庫(kù)數(shù)據(jù)并發(fā)與事務(wù)隔離,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久久久久一级毛片免费野外 | 91精品国产品国语在线不卡 | 亚洲国产成人在线视频 | 中文字幕在线视频一区 | 色综合久久夜色精品国产 | 91极品国产 | 91精品久久久久 | 亚洲小视频在线 | 男女激情视频国产免费观看 | 色婷婷综合和线在线 | 国产资源在线观看 | 综合网激情 | 国产在线播放成人免费 | 91青青国产在线观看免费 | 在线色视频网站 | 国产一区二区在线观看免费 | 国产原创自拍 | 思思玖玖玖在线精品视频 | 一区二区视频在线 | 中文字幕视频网站 | 欧美日韩国产超高清免费看片 | 自偷自拍亚洲欧美清纯唯美 | 日韩avav| 久草干 | 怡红院美国分院一区二区 | 在线视频www | 天天躁日日躁成人字幕aⅴ 天天躁日日躁狠狠躁中文字幕老牛 | 亚洲欧美激情视频 | 国产激情久久久久影 | 国产女人视频 | 男人精品网站一区二区三区 | 性欧美video另类3d | 国产亚洲精品午夜高清影院 | 97影院午夜在线观看视频 | 青青热久麻豆精品视频在线观看 | 久久国产成人亚洲精品影院老金 | 久久瑟 | 天天色天天插 | 国产成人一区二区三区在线视频 | 精品日韩在线 | 国产亚洲高清在线精品99 |