<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 基本概念 事務:一組邏輯操作單元,使數據從一種狀態變換到另一種狀態。 事務處理的原則:保證所有事務都作為 一個工作單元 來執行,即使出現了故障,都不能改變這種執行方 式。當在一個事務中執行多個操作時,要么所有的事務都被提交( commit ),那么這些修改就 永久 地保 存下來;要么數據庫管理系統將 放棄 所作的所有 修改 ,整個事務回滾( rollback )到最初狀態。 ## 事務的ACID特性 * 原子性(atomicity):原子性是指事務是一個不可分割的工作單位,要么全部提交,要么全部失敗回滾。 * 一致性(consistency):一致性是指事務執行前后,數據從一個 合法性狀態 變換到另外一個 合法性狀態 。這種狀態 是 語義上 的而不是語法上的,跟具體的業務有關。 * 隔離型(isolation):一個事務的執行 不能被其他事務干擾 ,即一個事務內部的操作及使用的數據對 并發 的 其他事務是隔離的,并發執行的各個事務之間不能互相干擾。 * 持久性(durability):持久性是指一個事務一旦被提交,它對數據庫中數據的改變就是 永久性的 ,接下來的其他操作和數據庫 故障不應該對其有任何影響。 持久性是通過 事務日志 來保證的。日志包括了 重做日志 和 回滾日志 。當我們通過事務對數據進行修改 的時候,首先會將數據庫的變化信息記錄到重做日志中,然后再對數據庫中對應的行進行修改。這樣做 的好處是,即使數據庫系統崩潰,數據庫重啟后也能找到沒有更新到數據庫系統中的重做日志,重新執 行,從而使事務具有持久性。 ## 事務隔離級別 ### 數據并發問題 1. 臟寫( Dirty Write ) 事務A修改了事務B未提交的的數據。 2. 臟讀( Dirty Read ) 事務A讀取了事務B修改但未提交的的數據。 3. 不可重復讀( Non-Repeatable Read ) 事務A讀取了一個字段,事務B修改并提交了此字段,當事務A再次讀取此字段時,值不同了,那就意味著發生了不可重復讀。這會導致事務A在執行過程中重復讀取同一個數據時,得到的數據會不同。 4. 幻讀( Phantom ) 事務A讀取了一個字段,然后事務B在該表中插入了一些新的行,之后事務A再次讀取同一個表,就會多出幾行。 ### 四種隔離級別 * READ UNCOMMITTED :讀未提交,在該隔離級別,所有事務都可以看到其他未提交事務的執行結 果。不能避免臟讀、不可重復讀、幻讀。 * READ COMMITTED :讀已提交,它滿足了隔離的簡單定義:一個事務只能看見已經提交事務所做 的改變。這是大多數數據庫系統的默認隔離級別(但不是MySQL默認的)。可以避免臟讀,但不可 重復讀、幻讀問題仍然存在。 * REPEATABLE READ :可重復讀,事務A在讀到一條數據之后,此時事務B對該數據進行了修改并提 交,那么事務A再讀該數據,讀到的還是原來的內容。可以避免臟讀、不可重復讀,但幻讀問題仍 然存在。**這是MySQL的默認隔離級別**。 * SERIALIZABLE :可串行化,確保事務可以從一個表中讀取相同的行。在這個事務持續期間,禁止 其他事務對該表執行插入、更新和刪除操作。所有的并發問題都可以避免,但性能十分低下。能避 免臟讀、不可重復讀和幻讀。
                  <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>

                              哎呀哎呀视频在线观看