mysql read committed_MySQL5.7 Read Committed事务隔离级别的研究-出现幻读

事务隔离级别为Read Committed的情况下:

事务2不执行commit,可以读取到事务1新添加的记录。此处说明出现了幻读。

当事务隔离级别改为REPEATABLE-READ后,能够解决该问题即解决幻读。

幻读定义:一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据。

session1执行事务1:只插入和提交

mysql> select @@global.tx_isolation;select @@tx_isolation;

+-----------------------+

| @@global.tx_isolation |

+-----------------------+

| READ-COMMITTED        |

+-----------------------+

1 row in set (0.01 sec)

+----------------+

| @@tx_isolation |

+----------------+

| READ-COMMITTED |

+----------------+

1 row in set (0.00 sec)

mysql> start transaction;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from sun;

+--------+------+

| name   | age  |

+--------+------+

| summer |   26 |

+--------+------+

1 row in set (0.00 sec)

mysql> insert into sun values(‘aa‘,‘88‘);

Query OK, 1 row affected (0.00 sec)

mysql> commit;

session2执行事务2:只查询

mysql> select @@global.tx_isolation;select @@tx_isolation;

+-----------------------+

| @@global.tx_isolation |

+-----------------------+

| READ-COMMITTED        |

+-----------------------+

1 row in set (0.00 sec)

+----------------+

| @@tx_isolation |

+----------------+

| READ-COMMITTED |

+----------------+

1 row in set (0.00 sec)

mysql> start transaction;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from sun;

+--------+------+

| name   | age  |

+--------+------+

| summer |   26 |

| aa     |   88 |

+--------+------+

原文:http://songlisha.blog.51cto.com/6269280/1885555

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值