<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    lqxue

    常用鏈接

    統(tǒng)計(jì)

    book

    tools

    最新評(píng)論

    [收藏]MySQLInnoDB存儲(chǔ)引擎的事務(wù)隔離級(jí)別

    我們知道,在關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)中有四個(gè)事務(wù)隔離級(jí)別:

     

    未提交讀(Read Uncommitted):允許臟讀,也就是可能讀取到其他會(huì)話中未提交事務(wù)修改的數(shù)據(jù) 
    提交讀(Read Committed):只能讀取到已經(jīng)提交的數(shù)據(jù)。Oracle等多數(shù)數(shù)據(jù)庫默認(rèn)都是該級(jí)別 
    可重復(fù)讀(Repeated Read):可重復(fù)讀。在同一個(gè)事務(wù)內(nèi)的查詢都是事務(wù)開始時(shí)刻一致的,InnoDB默認(rèn)級(jí)別。在SQL標(biāo)準(zhǔn)中,該隔離級(jí)別消除了不可重復(fù)讀,但是還存在幻象讀 
    串行讀(Serializable):完全串行化的讀,每次讀都需要獲得表級(jí)共享鎖,讀寫相互都會(huì)阻塞
    查看InnoDB系統(tǒng)級(jí)別的事務(wù)隔離級(jí)別:

    mysql> SELECT @@global.tx_isolation;
    +-----------------------+
    | @@global.tx_isolation |
    +-----------------------+
    | REPEATABLE-READ       |
    +-----------------------+
    1 row in set (0.00 sec)
    查看InnoDB會(huì)話級(jí)別的事務(wù)隔離級(jí)別:

    mysql> SELECT @@tx_isolation;
    +-----------------+
    | @@tx_isolation  |
    +-----------------+
    | REPEATABLE-READ |
    +-----------------+
    1 row in set (0.00 sec)
    修改事務(wù)隔離級(jí)別:

    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的可重復(fù)讀隔離級(jí)別和其他數(shù)據(jù)庫的可重復(fù)讀是有區(qū)別的,不會(huì)造成幻象讀(phantom read),所謂幻象讀,就是同一個(gè)事務(wù)內(nèi),多次select,可以讀取到其他session insert并已經(jīng)commit的數(shù)據(jù)。下面是一個(gè)小的測(cè)試,證明InnoDB的可重復(fù)讀隔離級(jí)別不會(huì)造成幻象讀。測(cè)試涉及兩個(gè)session,分別為session 1和session 2,隔離級(jí)別都是repeateable read,關(guān)閉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)建表并插入測(cè)試數(shù)據(jù)

    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 查詢,沒有數(shù)據(jù),正常,session1沒有提交,不允許臟讀

    mysql> select * from test;
    Empty set (0.00 sec)
    session 1 提交事務(wù)

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

    mysql> select * from test;
    Empty set (0.00 sec)
    以上試驗(yàn)版本:

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



    From:http://bbs.itren.cn/html/bbs41739.html

    posted on 2008-05-23 14:39 lqx 閱讀(231) 評(píng)論(0)  編輯  收藏 所屬分類: database

    主站蜘蛛池模板: 免费人成再在线观看网站| 全黄A免费一级毛片| 波霸在线精品视频免费观看| 国产免费久久精品丫丫| 老汉精品免费AV在线播放| 亚洲免费综合色在线视频| 在线观看免费国产视频| 亚洲国产精品一区二区第一页免| 亚洲人成网7777777国产| 亚洲a级成人片在线观看| 免费又黄又爽又猛大片午夜| 啊v在线免费观看| 亚洲白嫩在线观看| 麻豆91免费视频| 成人免费午夜无码视频| 日韩亚洲产在线观看| 伊人久久大香线蕉免费视频| 天堂在线免费观看中文版| 亚洲av日韩综合一区在线观看| 国产亚洲精品欧洲在线观看| 又黄又爽又成人免费视频| 亚洲gv白嫩小受在线观看| 无码一区二区三区亚洲人妻| 国产一卡2卡3卡4卡无卡免费视频| 亚洲Av无码一区二区二三区| 日韩一级视频免费观看| 一级一片免费视频播放| 国产网站在线免费观看| 一本色道久久88—综合亚洲精品| 无码免费一区二区三区免费播放| 亚洲成片观看四虎永久| a国产成人免费视频| 亚洲中文字幕无码一久久区| 精品亚洲视频在线| 亚洲国产成人高清在线观看 | 国产一级a毛一级a看免费视频| 亚洲第一中文字幕| 日本特黄特黄刺激大片免费| aa级女人大片喷水视频免费| 亚洲国产成人91精品| 国产精品免费观看|