<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;并發控制技術主要有三種:嚴格兩階段封鎖(S2PL)、多版本并發控制(MVCC)和樂觀并發控制(OCC)。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在MVCC中,每次寫入操作都會創建數據項的新版本,同時保留舊版本。當事務讀取數據項時,系統選擇其中一個版本以確保單個事務的隔離。**MVCC最大的特點是讀寫互不阻塞**。**PostgreSQL使用了稱為快照隔離(SI)的 MVCC 變體結合封鎖技術進行并發控制。** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;為了實現SI,一些RDBMS(例如Oracle)使用回滾段。寫入新數據項時,該項的舊版本將寫入回滾段,隨后新項將覆蓋到數據區域。PostgreSQL使用更簡單的方法。**新的數據項將直接插入到相關的表頁中。在讀取項目時,PostgreSQL通過應用可見性檢查規則選擇項目的適當版本以響應單個事務**。SI可以杜絕臟讀、不可重復讀、幻讀,但SI 無法實現真正??的可序列化,因為它允許序列化異常,例如 Write Skew 和 Read-only Transaction Skew。為了解決這個問題,從 9.1 版開始添加了可序列化快照隔離 (SSI)。 SSI 可以檢測序列化異常并解決此類異常引起的沖突。因此,PostgreSQL 9.1 及更高版本提供了真正的 SERIALIZABLE 隔離級別。 (另外,SQL Server 也使用 SSI,Oracle 仍然只使用 SI) <br> > 快照隔離是事務處理和數據庫中的一個屬性,它保證在一個事務中進行的所有讀取都能看到同一個數據庫“快照”。這意味著,如果事務的更新與任何其他并發更新不沖突,則事務將承諾成功處理請求。快照隔離是一個用于多版本并發的控制算法,它提供了隔離級別,從而避免了在并發時經常出現的問題 <br> **MVCC的實現方法有兩種:** 1. 寫新數據時,把舊數據移到一個單獨的地方,如回滾段中,其他人讀數據時,從回滾段中把舊的數據讀出來; 2. 寫數據時,舊數據不刪除,而是把新數據插入。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostgreSQL數據庫使用第二種方法,而Oracle數據庫和MySQL中的innodb引擎使用的是第一種方法。與oracle數據庫和MySQL中的innodb引擎相比較,PostgreSQL的MVCC實現方式的優缺點如下。 優點: 1. 事務回滾可以立即完成,無論事務進行了多少操作; 1. .數據可以進行很多更新,不必像Oracle和MySQL的Innodb引擎那樣需要經常保證回滾段不會被用完,也不會像oracle數據庫那樣經常遇到“ORA-1555”錯誤的困擾; ? ?缺點: 1. 舊版本數據需要清理。PostgreSQL清理舊版本的命令成為Vacuum; 1. 舊版本的數據會導致查詢更慢一些,因為舊版本的數據存在于數據文件中,查詢時需要掃描更多的數據塊。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看