zoukankan      html  css  js  c++  java
  • serializable

    实现方式:

    2阶段加锁:读加锁,写加锁

    这种加锁会导致 mvcc 失效,因为 select  * from xx也会加锁,select * from xx for update

    RR

    会话1

    mysql> begin;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select * from a;
    +------+
    | a |
    +------+
    | 1 |
    | 2 |
    +------+
    2 rows in set (0.00 sec)

    会话2:

    
    mysql> begin;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> insert into a select 3;
    Query OK, 1 row affected (0.02 sec)
    Records: 1  Duplicates: 0  Warnings: 0
    
    mysql> commit;
    Query OK, 0 rows affected (0.04 sec)

    会话1:

    mysql> select * from a;
    +------+
    | a    |
    +------+
    | 1    |
    | 2    |
    +------+
    2 rows in set (0.00 sec)
    
    
    
    mysql> select * from a  for update;      
    +------+
    | a    |
    +------+
    | 1    |
    | 2    |
    | 3    |
    +------+
    3 rows in set (0.00 sec)

    serializable级别:

    会话1:

    mysql> begin;   //事务未开始
    Query OK, 0 rows affected (0.00 sec)

    会话2:

    mysql> begin;   
    Query OK, 0 rows affected (0.05 sec)
    
    
    mysql> select * from a;     //事务开始   //非一致性查询

    会话1:

    insert into a select 10;    等待事务2执行完毕   会话1事务才开始,第一条SQL语句,串行执行,非一致性查询也阻塞了会话1,串行级别 MVCC失效
  • 相关阅读:
    day6心得
    安卓下拉刷新和上拉加载的具体实例
    安卓下拉刷新空间SwipeRefreshLayout的基本使用
    fresco的使用教程
    封装安卓的okhttp
    handler更新ui线程的基本用法
    安卓recyclerview的基本使用
    安卓轮播组件
    自定义toolbar教程
    原生toolbar基本使用教程
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5698324.html
Copyright © 2011-2022 走看看