激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        您的位置: 網站首頁 > 幫助中心>文章內容

        MySQL中的事務隔離級別參考

        發(fā)布時間:  2012/9/24 17:00:21

        SQL 標準用三個必須在并行的事務之間避免的現象定義了四個級別的事務隔離。 這些不希望發(fā)生的現象是:

        臟讀(dirty reads)

        一個事務讀取了另一個未提交的并行事務寫的數據。

        不可重復讀(non-repeatable reads)
        -
         


        一個事務重新讀取前面讀取過的數據, 發(fā)現該數據已經被另一個已提交的事務修改過。

        幻讀(phantom read)

        一個事務重新執(zhí)行一個查詢,返回一套符合查詢條件的行, 發(fā)現這些行因為其他最近提交的事務而發(fā)生了改變。

        SQL 事務隔離級別
        離級別  臟讀(Dirty Read)          不可重復讀(NonRepeatable Read) 幻讀 (Phantom Read)
        讀未提交(Read uncommitted) 可能 可能 可能
        讀已提交(Read committed) 不可能 可能 可能
        可重復讀 (Repeatable read) 不可能 不可能 可能
        可串行化 (Serializable ) 不可能 不可能 不可能

        在MySQL中默認事務隔離級別是可重復讀 (Repeatable read).可通過SQL語句查詢:
        查看InnoDB系統(tǒng)級別的事務隔離級別:
            mysql> SELECT @@global.tx_isolation;
        結果:
        +-----------------------+
        | @@global.tx_isolation |
        +-----------------------+
        | REPEATABLE-READ       |
        +-----------------------+
        1 row in set (0.00 sec)
        查看InnoDB會話級別的 事務隔離級別:
          mysql> SELECT @@tx_isolation;
        結果:
        +-----------------+
        | @@tx_isolation  |
        +-----------------+
        | REPEATABLE-READ |
        +-----------------+
        1 row in set (0.00 sec)
        修改事務隔離級別:

        mysql> set global transaction isolation level read committed;

        Query OK, 0 rows affected (0.00 sec)


            mysql> set session transaction isolation level read committed;


            Query OK, 0 rows affected (0.00 sec)
        InnoDB的可重復讀隔離 級別和其他數據庫的可重復讀是有區(qū)別的,不會造成幻象讀(phantom read),所謂幻象讀,就是同一個事務內,多次select,可以讀取到其他session insert并已經commit的數據。下面是一個小的測試,證明InnoDB的可重復讀隔離級別不會造成幻象讀。測試涉及兩個session,分別為 session 1和session 2,隔離級別都是repeateable read,關閉autocommit
            mysql> select @@tx_isolation;

            +-----------------+
        | @@tx_isolation  |
        +-----------------+
        | REPEATABLE-READ |
        +-----------------+
        1 row in set (0.00 sec)

            mysql> set autocommit=off;

        Query OK, 0 rows affected (0.00 sec)
        session 1 創(chuàng)建表并插入測試數據

        mysql> create table test(i int) engine=innodb;
            Query OK, 0 rows affected (0.00 sec)

        mysql> insert into test values(1);
        Query OK, 1 row affected (0.00 sec)
        session 2 查詢,沒有數據,正常,session1沒有提交,不允許臟讀
        mysql> select * from test;
        Empty set (0.00 sec)
        session 1 提交事務

        mysql> commit;
        Query OK, 0 rows affected (0.00 sec)
        session 2 查詢,還是沒有數據,沒有產生幻象讀

        mysql> select * from test;
        Empty set (0.00 sec)


        以上試驗版本:

        mysql> select version();
        +-------------------------+
        | version()               |
        +-------------------------+
        | 5.0.37-community-nt-log |
        +-------------------------+
        1 row in set (0.00 sec)


         


        本文出自:億恩科技【mszdt.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經營性ICP/ISP證:贛B2-20080012
      9. 服務器/云主機 24小時售后服務電話:0371-60135900
      10. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      11. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線