<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 閱讀(231) 評論(0)  編輯  收藏 所屬分類: database

    主站蜘蛛池模板: 亚洲愉拍一区二区三区| 亚洲系列中文字幕| 免费国产va在线观看| 日韩高清在线免费观看| 国产成人亚洲合集青青草原精品| 曰批全过程免费视频播放网站 | 中文字幕乱码系列免费| 两性色午夜视频免费网| 伊人久久精品亚洲午夜| 国产在线观a免费观看| 亚洲精品午夜无码电影网| 免费黄网站在线看| 亚洲综合小说久久另类区| 99精品国产免费久久久久久下载| 亚洲经典在线观看| 在线免费观看污网站| 曰批免费视频播放在线看片二| 免费成人午夜视频| 久青草视频在线观看免费 | 亚洲色偷偷综合亚洲AVYP| 免费萌白酱国产一区二区三区| 日本红怡院亚洲红怡院最新| 99热精品在线免费观看| 亚洲免费视频观看| 国产青草视频免费观看97| 一个人看的www在线免费视频| 国产精品亚洲片在线观看不卡| 美丽姑娘免费观看在线观看中文版| 亚洲色av性色在线观无码| 无码一区二区三区免费视频| 男女猛烈xx00免费视频试看| 国产精品亚洲精品日韩已满| 黄页网站免费观看| 香蕉视频在线观看免费| 亚洲va在线va天堂va不卡下载| 四虎永久在线精品免费观看视频| 看成年女人免费午夜视频| 亚洲αv在线精品糸列| 无码人妻精品一二三区免费| 国产精品高清免费网站| 亚洲视频免费在线播放|