<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      MySQL中鎖的必要性及分類介紹

      [摘要]本篇文章給大家帶來的內容是關于MySQL中鎖的必要性及分類介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。當用戶訪問量增長時,數據庫往往是一個系統的性能瓶頸,但不光光是性能瓶頸,...
      本篇文章給大家帶來的內容是關于MySQL中鎖的必要性及分類介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

      當用戶訪問量增長時,數據庫往往是一個系統的性能瓶頸,但不光光是性能瓶頸,數據安全也會隨之浮現,這時候鎖機制就非常有必要。

      并發造成的數據安全問題主要分為3個方面:臟讀、幻讀、不可重復讀

      一. 臟讀

      臟讀就是一個事務讀取到了另一個事務未提交的數據。

      時間線  事務1                               事務2
        1    begin;                                  
        2    select * from lock where id = 1;
        3                                       begin;
        4                                       update lock set name='dirty';
        6    select * from lock where id = 1;
        7    commit;                            commit;

      二. 幻讀

      幻讀就是一個事務讀到了另一個事務insert的數據

      時間線       事務1                            事務2
         1        begin;
         2        select * from lock where id > 1;
         3                                        begin;
         4                                        insert lock select 2;
         5                                        commit;
         6        select * from lock where id > 1;
         7        commit;

      三. 不可重復讀

      不可重復讀就是多次讀取統一數據返回的結果不一致。同臟讀不同,這是讀取已經提交的數據;同幻讀也不同,這邊是更新數據,幻讀是插入數據。

      時間線   事務1                            事務2
              begin;
              select * from lock where id = 1;
                                              begin;
                                              update lock set name='non-rr';
                                              commit;
              select * from lock where id = 1;
              commit;

      MySQL通過對事務的隔離來解決以上三種問題
      共有4種隔離級別

      隔離級別           臟讀   幻讀   不可重復讀
      未提交讀(RUC)       是     是      是
      已提交讀(RC)        否     是      是
      可重復讀(RR)        否     是      否
      可串行化            否     否      否

      MySQL通過鎖機制來實現事務的隔離

      鎖的分類如下

      2461191540-5bc36b1616939_articlex.png

      以上就是MySQL中鎖的必要性及分類介紹的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清