<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

    主站蜘蛛池模板: 亚洲女同成av人片在线观看| 亚洲国产成人99精品激情在线| 国产精品免费看久久久 | 怡红院免费的全部视频| 青青草原亚洲视频| 伊人久久免费视频| 国产午夜亚洲精品| 国产亚洲精品拍拍拍拍拍| 18以下岁毛片在免费播放| 精品亚洲视频在线| 亚洲精品无码不卡| 啦啦啦www免费视频| 99re6在线精品免费观看| 亚洲综合校园春色| 亚洲精品成人无码中文毛片不卡| 无码区日韩特区永久免费系列| 一级毛片完整版免费播放一区| 亚洲精品mv在线观看| 亚洲国产综合无码一区二区二三区| 日本免费人成视频在线观看| 亚洲av最新在线观看网址| 亚洲AV永久纯肉无码精品动漫 | 亚洲Av永久无码精品三区在线| 无人影院手机版在线观看免费| 久久国产精品免费| 亚洲中文字幕无码mv| 亚洲产国偷V产偷V自拍色戒| 在线观看人成网站深夜免费| 在线观看免费播放av片| 日韩精品亚洲专区在线影视| 中文字幕在线观看亚洲| JLZZJLZZ亚洲乱熟无码| 亚洲免费网站观看视频| 亚洲免费精彩视频在线观看| 一区二区三区免费精品视频| 亚洲日韩国产一区二区三区在线| 亚洲视频.com| 亚洲国产日韩在线视频| 亚洲色图综合在线| 国产成人免费永久播放视频平台 | 精品福利一区二区三区免费视频|