<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    neverend的日志

    不記錄,終將被遺忘。 一萬年太久,只爭(zhēng)朝夕。 他們用數(shù)字構(gòu)建了整個(gè)世界。

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      62 Posts :: 1 Stories :: 17 Comments :: 0 Trackbacks

    數(shù)據(jù)庫中的事務(wù)是可以并發(fā)執(zhí)行的,由此帶來四種并發(fā)問題:

    一、丟失更新 update lost

    1.回滾丟失 事務(wù)A修改X, 事務(wù)B修改X, 事務(wù)B回滾,事務(wù)A提交。結(jié)果:事務(wù)A的修改丟失了

    2.覆蓋丟失 并發(fā)的事務(wù)A和A'執(zhí)行同樣的任務(wù), A讀取X, B讀取X, A將X+1寫回,A'將X+1寫回。結(jié)果:X應(yīng)為X+2,實(shí)際卻為X+1

    二、臟讀取 dirty read

    事務(wù)A修改數(shù)據(jù)X(此時(shí)A沒有commit),事務(wù)B讀取X,事務(wù)A回滾。 結(jié)果 : 事務(wù)B讀取的X不準(zhǔn)確

    三、不可重復(fù)讀 Non-Repeatable Read

    事務(wù)A讀取數(shù)據(jù)X ,事務(wù)B修改數(shù)據(jù)X ,然后事務(wù)A再讀該數(shù)據(jù),結(jié)果:事務(wù)A兩次讀取的數(shù)據(jù)不一致。

    四、幻想讀 Phantom Read 讀取的數(shù)據(jù)集未改變,但是條件數(shù)據(jù)集改變,造成事務(wù)A兩次讀取的數(shù)據(jù)不一致。

    解決方案:

    Sql標(biāo)準(zhǔn)隔離級(jí)別

    Dirty Read

    NonRepeatable Read

    Phantom Read

    Read uncommitted

    Possible

    Possible

    Possible

    Read committed

    Not possible

    Possible

    Possible

    Repeatable read

    Not possible

    Not possible

    Possible

    Serializable

    Not possible

    Not possible

    Not possible

    Serializable 全序列化 提供嚴(yán)格的事務(wù)隔離。它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,但不能并發(fā)執(zhí)行。如果僅僅通過“行級(jí)鎖”是無法實(shí)現(xiàn)事務(wù)序列化的,必須通過其他機(jī)制保證新插入的數(shù)據(jù)不會(huì)被剛執(zhí)行查詢操作的事務(wù)訪問到。

        Repeatable Read 可重復(fù)讀取 禁止不可重復(fù)讀取和臟讀取,但是有時(shí)可能出現(xiàn)幻影數(shù)據(jù)。這可以通過“共享讀鎖”和“排他寫鎖”實(shí)現(xiàn)。讀取數(shù)據(jù)的事務(wù)將會(huì)禁止寫事務(wù)(但允許讀事務(wù)),寫事務(wù)則禁止任何其他事務(wù)。

        Read Committed 授權(quán)讀取 允許不可重復(fù)讀取,但不允許臟讀取。這可以通過“瞬間共享讀鎖”和“排他寫鎖”實(shí)現(xiàn)。讀取數(shù)據(jù)的事務(wù)允許其他事務(wù)繼續(xù)訪問該行數(shù)據(jù),但是未提交的寫事務(wù)將會(huì)禁止其他事務(wù)訪問該行。

        Read Uncommitted 未授權(quán)讀取 允許臟讀取,但不允許更新丟失。如果一個(gè)事務(wù)已經(jīng)開始寫數(shù)據(jù),則另外一個(gè)數(shù)據(jù)則不允許同時(shí)進(jìn)行寫操作,但允許其他事務(wù)讀此行數(shù)據(jù)。該隔離級(jí)別可以通過“排他寫鎖”實(shí)現(xiàn)。

    隔離級(jí)別的實(shí)現(xiàn)原理:

    ………………

    其他相關(guān)知識(shí)

    事務(wù)定義:是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作。要么全部執(zhí)行,要么全部不執(zhí)行。

    事務(wù)四種屬性: ACID 原子性、一致性、隔離性和持久性

    A : 要么全都執(zhí)行,要么全都不執(zhí)行

    C: 所有的數(shù)據(jù)都保持一致狀態(tài) 賬戶A轉(zhuǎn)出100$給賬戶B , 保證賬戶A -100$,賬戶B +100$

    I: 由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。數(shù)據(jù)查看可串行。

    D:事務(wù)完成之后,它對(duì)于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持。

    參考資料:

    http://blog.csdn.net/yongyuana01/archive/2009/02/25/3936482.aspx

    http://epub.itpub.net/3/4.htm

    http://baike.baidu.com/view/1298364.html?fromTaglist

    閱讀全文
    類別:技術(shù)天地 查看評(píng)論
    posted on 2010-09-29 10:55 neverend 閱讀(225) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品午夜国产va久久| 亚洲avav天堂av在线网毛片| 1000部拍拍拍18免费网站| 亚洲综合一区国产精品| 成人伊人亚洲人综合网站222| 中文无码日韩欧免费视频| 亚洲精品欧洲精品| 免费jlzzjlzz在线播放视频| 亚洲免费观看视频| 亚洲熟女精品中文字幕| 亚洲av中文无码乱人伦在线播放 | 好吊妞在线成人免费| 一级做a毛片免费视频| 亚洲最新黄色网址| 亚洲欧洲一区二区三区| 国产又大又粗又长免费视频| xvideos永久免费入口| 亚洲一级免费毛片| 亚洲国产成人一区二区精品区| 午夜dj在线观看免费视频| 国产午夜无码精品免费看| 亚洲国产成人久久一区二区三区| 亚洲AV日韩AV永久无码下载| 国产精品国产自线拍免费软件| 91久久青青草原线免费| 一级美国片免费看| 亚洲人成电影网站免费| 亚洲综合久久综合激情久久| 亚洲精品高清在线| 日韩免费观看一级毛片看看| 最近2019免费中文字幕6| 国产一级婬片A视频免费观看| 亚洲1区2区3区精华液| 日韩亚洲AV无码一区二区不卡| ZZIJZZIJ亚洲日本少妇JIZJIZ| 日本免费高清一本视频| 97在线观免费视频观看| 亚欧免费一级毛片| 中文字幕视频在线免费观看| 免费国产在线精品一区| 亚洲国产区男人本色|