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

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

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

    lqxue

    常用鏈接

    統計

    book

    tools

    最新評論

    [收藏]MySQLInnoDB存儲引擎的事務隔離級別

    我們知道,在關系數據庫標準中有四個事務隔離級別:

     

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

    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的可重復讀隔離級別和其他數據庫的可重復讀是有區別的,不會造成幻象讀(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 創建表并插入測試數據

    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)
    --EOF--



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

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

    主站蜘蛛池模板: 免费99热在线观看| 国内精品免费麻豆网站91麻豆| 成全高清视频免费观看| 亚洲系列中文字幕| 午夜福利不卡片在线播放免费| 亚洲国产精品综合福利专区| 2020久久精品国产免费| 亚洲AV一二三区成人影片| 在线视频免费观看高清| 日本亚洲色大成网站www久久| 欧美大尺寸SUV免费| 亚洲性色精品一区二区在线| 在线看片无码永久免费aⅴ| jzzijzzij在线观看亚洲熟妇| 亚洲第一永久AV网站久久精品男人的天堂AV | 99精品热线在线观看免费视频 | 亚洲欧洲免费无码| 亚洲国产精品18久久久久久 | 免费看美女被靠到爽| 国产在亚洲线视频观看| 亚洲综合AV在线在线播放| 四虎影视在线影院在线观看免费视频| 亚洲免费视频在线观看| 99久久免费精品国产72精品九九 | 亚洲人av高清无码| 无码欧精品亚洲日韩一区夜夜嗨| h视频在线免费观看| 亚洲人成网站影音先锋播放| 91在线品视觉盛宴免费| 免费的黄色的网站| 亚洲黄色高清视频| 国产色爽女小说免费看| 精品国产一区二区三区免费| 亚洲午夜精品在线| 亚洲区日韩区无码区| 69xx免费观看视频| 日本特黄特色AAA大片免费| 亚洲国产精品国自产电影| 精品免费国产一区二区三区| 99免费精品视频| 亚洲人成网站免费播放|