zoukankan      html  css  js  c++  java
  • Mysql到底解决了幻读没有(rr级别)?

    1、答:从严格意义上说没有解决。

    2、具体分析:

      2.1、根据读取数据方式,可以分为快照读和当前读,在快照读方式下,mysql通过mvcc方式解决了幻读,

      在当前读方式下比如  select   * from  xxx   where  name='aa' for    update    由于mysql 开启间隙锁,会锁住

      相关数据,所以此时也可以说解决了幻读问题。

      2.2、当一个事务中设计到 update  一条看不见的数据时,如果此时再次查询时,可能多出一条数据,此时,也是发生了

      幻读。所以从严格意义说mysql并没有解决幻读。

      举例一下:

    id name age
    1 小明 18
    2 小李 18
    3 小东 19
    4 赵四 20

      事务1:  select * from  student where age=18 for update    此时小明小李被查出

      事务2:insert into   student (name,age) values(小张,18)

      事务1:update  student  set name=‘无敌’  where   age=18 ; select * from  student  where age=18

      注意此时age=18的人有三个了,名字都是无敌。幻读出现了

  • 相关阅读:
    hive学习
    spark Streaming
    spark sql
    参考
    数论基础
    2020.07.17模拟3
    2020.07.16模拟2
    关于Linux环境下的对拍
    2020.07.15模拟1
    三体
  • 原文地址:https://www.cnblogs.com/zxg-blog/p/15107808.html
Copyright © 2011-2022 走看看