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

                三類數據讀問題 1.Dirty Read(臟讀) 事務 A 讀取了事務 B 未提交的數據,并在這個基礎上又做了其他操作。 2.Unrepeatable Read(不可重復讀) 事務 A 讀取了事務 B 已提交的更改數據。 3.Phantom Read(幻讀) 事務 A 讀取了事務 B 已提交的新增數據。 兩類數據更新問題 1.第一類丟失更新 2.第二類丟失更新 ### Dirty Read(臟讀) 余額應該為 1100 元才對!請看 T6 時間點,事務 A 此時查詢余額為 900 元,這個數據就是臟數據,它是事務 A 造成的,明顯事務沒有進行隔離,滲過來了,亂套了。 所以臟讀這件事情是非常要不得的,一定要解決掉!讓事務之間隔離起來才是硬道理。 ![](https://box.kancloud.cn/ec577638db9d43143579d5d848e2e162_745x286.jpg) ### Unrepeatable Read(不可重復讀) 事務 A 其實除了查詢了兩次以外,其他什么事情都沒有做,結果錢就從 1000 變成 0 了,這就是重復讀了 這種現象基本上是可以理解的,但在有些變態的場景下卻是不允許的。 ![](https://box.kancloud.cn/d3ce9f75a5a2983cc96cfdcba3e6ea4f_746x229.jpg) ### Phantom Read(幻讀) 銀行工作人員,每次統計總存款,都看到不一樣的結果。不過這也確實也挺正常的,總存款增多了,肯定是這個時候有人在存錢。 ![](https://box.kancloud.cn/68268667adea935e8da8998bad9fac0f_746x201.jpg) ### 第一類丟失更新 A事務撤銷時,把已經提交的B事務的更新數據覆蓋了。這種錯誤可能造成很嚴重的問題 ![](https://box.kancloud.cn/9a7d1963fac776bc57063443ec63002e_746x287.jpg) ### 第二類丟失更新 B事務覆蓋A事務已經提交的數據,造成A事務所做操作丟失 ![](https://box.kancloud.cn/77f0bb598da5458324b3abbc684499c3_748x260.jpg) ### 事務隔離級別 從上往下,級別越來越高,并發性越來越差,安全性越來越高,反之則反 MySQL 數據庫的默認事務隔離級別就是 READ_COMMITTED ![](https://box.kancloud.cn/0614d195f28a3551d172eb4deefa3e3e_745x145.jpg)
                  <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>

                              哎呀哎呀视频在线观看