mysql 事務分析小筆記--01

來源:互聯網
上載者:User

標籤:off   span   commit   ons   四種   分享   tab   mon   https   

  最近對有些同學問了我下事務的一些相關知識,在高並發下,事務有什麼效能影響? 會不會有堵塞的問題? mysql是如何處理這些的。。。。。突然印象中記得很久之前研究過,可是尼瑪,忘了。為了重新撿起知識。於是再次進去了深入分析和學習。平時工作忙比較少寫部落格,今天開始多學會總結和分享啦。

      開始時候,我們首先得瞭解事務的ACID四個特徵(簡單,不需再說),隔離的四個層級,innodb的mvcc(多版本並發控制),redo/undo 等等。

  先說交易隔離等級:

    1.Read Uncommitted(未提交讀)                                              ---------> read-uncommitted

    2.Read Committed  (提交讀)                                               --------> read-committed

    3.Repeatable Read  (可重讀) mysql 預設層級                         ---------> repeatable-read

    4.Serializable   (序列化)註:事務層級最高,串列執行                  ---------> serializable

  說事務隔離區別前,先簡單說一下怎麼設定系統交易隔離等級和會話交易隔離等級

    查看InnoDB儲存引擎 系統級的隔離等級 和 會話級的隔離等級

     select @@global.tx_isolation,@@tx_isolation;     更改會話和系統隔離等級     set session tx_isolation=‘read-uncommitted‘;//值看上面 “--->”部分     set global tx_isolation=‘read-uncommitted‘;  //值看上面"--->"部分

 

     下面以單詞首字母作為簡稱分析:

    1、RU 未提交讀

   容易造成髒資料:

    A 和 B 兩個執行個體作為例子

           A:

 

           B:

    認真看看,尼瑪,AB開了未提交隔離模式,B就直接讀取A中沒有添加的插入那行了。造成了嚴重的髒資料。提交讀,可以幫你解決這個問題。

     2、RC (提交讀)

   A:

     B:

         A插入新行,可是在事務B裡查詢兩次,兩次結果不一樣,明顯出現了不可重複讀取的情況。前後兩次不一致。重複讀可以給你解決這個問題。

  3、RR (可重複讀)

       A:

      B: 

  呵呵,A新增了一行,並且commit,可是在B的事務裡,前後兩次資料並沒有變化。(mysql預設交易隔離等級)

      但是這會有出現一種幻讀現象,比如,A事務插了一條,B事務由於查詢前後不變,當B去插同一條時候,會報錯。

     這個是mysql最常用類型。

  4、Serializable   (串列模式)

      

      A 事務並沒有添加的時候,B根本不能往裡面插資料。。。。。。

  這種類型,無論是從效率來說還是從實質來說,應用情境不多。

  (試著類型時候,記得把autocommit 關了,不然沒有效果) set autocommit=off; 

  呵呵,從以上四種事務層級來說不同有不同應用。下次講講mvcc的,適合RC RR 。    

 

----------小龍說法,有不同觀點有不同見解可以留下意見哈。

 

 

mysql 事務分析小筆記--01

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.