READ-COMMITTED 不能进行可重复读和防止幻读

原创 2015年11月19日 17:03:32
mysql> SELECT @@GLOBAL.tx_isolation, @@tx_isolation; 
+-----------------------+----------------+
| @@GLOBAL.tx_isolation | @@tx_isolation |
+-----------------------+----------------+
| REPEATABLE-READ       | READ-COMMITTED |
+-----------------------+----------------+
1 row in set (0.00 sec)

SESSION A:                                                SESSION B:
set autocommit=0;                                          set autocommit=0;
start transaction;
set session transaction isolation level read committed;    
mysql>  select * from t100;
+-----+-------+
| id  | value |
+-----+-------+
|   1 | a     |
|   8 | a     |
| 100 | a     |
| 200 | a     |
| 300 | a     |
| 400 | a     |
| 500 | a     |
| 600 | a     |
| 700 | a     |
+-----+-------+                                        
                                                       insert into t100 values(800,'a');

mysql>  select * from t100;
+-----+-------+
| id  | value |
+-----+-------+
|   1 | a     |
|   8 | a     |
| 100 | a     |
| 200 | a     |
| 300 | a     |
| 400 | a     |
| 500 | a     |
| 600 | a     |
| 700 | a     |
+-----+-------+                                    commit;


mysql> select * from t100;
+-----+-------+
| id  | value |
+-----+-------+
|   1 | a     |
|   8 | a     |
| 100 | a     |
| 200 | a     |
| 300 | a     |
| 400 | a     |
| 500 | a     |
| 600 | a     |
| 700 | a     |
| 800 | a     |
+-----+-------+
10 rows in set (0.00 sec)


此时SESSION A看到SESSION B的插入:

mysql事务之提交读(Read Committed)

1,Read Commited定义: 在提交读(READ COMMITTED)级别中,基于锁机制并发控制的DBMS需要对选定对象的写锁(write locks)一直保持到事务结束,但是读锁(re...

MySQL数据库事务隔离级别(Transaction Isolation Level)

今天在学习JDBC的时候看到了关于MySql的事务的隔离级别的问题,感觉内容挺高级的,所以记录一篇文章,以备后面使用。 数据库隔离级别有四种,应用《高性能mysql》一书中的说明: ...

合婚算法之用JAVA实现本命卦合婚法

问题:我输入 男方的生日:1980-01-01  01:01:01 女方生日:1980-01-01  01:01:01    跪求这样一个八字合婚算法    合婚软件似乎很多,关键是怎么去写...

Java 计算节气的类

我上网查了很多文章,看半天也没解决我的问题:如果求一年所有节气日期。如何计算某个日期距离上个节气的天数。   很多文章确实提到了,但是代码没法用,算出来节气日期根本不准。   只能自己找个改了改: ...

对read committed隔离级别的全新认识:select语句能读取到,未来被其他事务修改过的数据???

关于锁,有很多可以学习的,比如,锁的粒度,锁的模式,锁的兼容性,以及隔离级别等等。 但是,具体到运行一个语句时,是怎么去获取到相应的锁的呢,比如,一个select语句,那么需要加S锁,可能是对记录...
  • yupeigu
  • yupeigu
  • 2014年03月05日 16:20
  • 1952

关于Mysql事务REPEATABLE_READ隔离级别下多版本并发控制(MVCC)重复读产生的坑的你踩过么?

前几天在系统中开发一个活动, 使用了行级锁,但是却在并发测试下出现了重大的Bug,话不多说, 直接开始. 事务的隔离级别是Mysql默认的REPEATABLE_READ. Time1: 事务A...
  • Mr_rain
  • Mr_rain
  • 2016年07月08日 11:31
  • 1541

对SQL Server中read committed隔离级别的全新认识 S X锁

关于锁,有很多可以学习的,比如,锁的粒度,锁的模式,锁的兼容性,以及隔离级别等等。 但是,具体到运行一个语句时,是怎么去获取到相应的锁的呢,比如,一个select语句,那么需要加S锁,可能是对记...

脏读(dirty read)不可重复读(unrepeatable read)幻读(phantom problem)解析

1. 脏读  首先区分脏页和脏数据 脏页是内存的缓冲池中已经修改的page,未及时flush到硬盘,但已经写到redo log中。读取和修改缓冲池的page很正常,可以提高效率,flush...

脏读(dirty read)不可重复读(unrepeatable read)幻读(phantom problem)解析

1. 脏读  首先区分脏页和脏数据 脏页是内存的缓冲池中已经修改的page,未及时flush到硬盘,但已经写到redo log中。读取和修改缓冲池的page很正常,可以提高效率,flush即可同步...

仅 READ_COMMITTED 和 SERIALIZABLE 是有效的事务处理级

java.sql.SQLException: 仅 READ_COMMITTED 和 SERIALIZABLE 是有效的事务处理级 org.springframework.transactio...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:READ-COMMITTED 不能进行可重复读和防止幻读
举报原因:
原因补充:

(最多只允许输入30个字)