<progress id="nc499"><pre id="nc499"><rt id="nc499"></rt></pre></progress>

<dd id="nc499"><track id="nc499"><dl id="nc499"></dl></track></dd>
  • <nav id="nc499"></nav>

    <span id="nc499"></span>

    數據庫并發控制機制的理解

    來源:csdn「螞蟻學Python」 2021-04-14 12:37:29
    隔離級別相當于數據庫實現的一套現有的機制,我們直接可以復用;但對于特殊需求,我們可以自己使用鎖機制來實現,其實我們自己就可以使用鎖機制,實現一套隔離級別;

    鎖機制只是隔離性級別的一種實現;我的感觸是,類似封裝了函數,數據庫隔離性級別,是幫我們實現了幾個線程的并發控制方法。但是一些特殊的并發控制,我們可以自己使用鎖機制來實現;

    數據庫并發控制機制的理解?


    1、如果事務A設置為read uncommitted,那么事務B做了update還未提交,事務A能夠讀取到事務B更新的數據,事務B如果回滾,事務A則看到事務B回滾后的數據;

    2、如果事務A設置為read committed,那么事務B做了update并且沒有提交,事務A是讀取不到事務B更新的數據的;

    3、如果事務A設置為repeatable read,那么事務B做了update并提交,事務A仍然讀取不到,事務B即使多次commit,事務A全都讀取不到;

    4、如果事務A設置為serializable,如果事務B已經開始運行并做了更新,那么事務A的任何操作得一直等待;如果B沒做更新,則A還是能讀取的;

    以上四種級別,事務A如果正在更新一條數據,事務B如果要更新同一條數據,則會等待直到超時,因為事務A更新這條數據時加上了排它鎖;

    原文出處:https://blog.csdn.net/peishuai1987/article/details/89882752
    版權聲明:本文來源地址若非本站均為轉載,若侵害到您的權利,請及時聯系我們,我們會在第一時間進行處理。