• 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的人有三个了,名字都是无敌。幻读出现了

  • 相关阅读:
    用Total Commander for Android管理应用程序
    我的zsh简单设置
    C# Newtonsoft.Json 使用
    Wireshark 抓包 test
    C# 调用API test
    C# 委托 的语法 之一
    C# 对象初始化器 和数组初始化语法
    C 语言 数据类型长度
    vue 使用 test
    test
  • 原文地址:https://www.cnblogs.com/zxg-blog/p/15107808.html
Copyright © 2020-2023  润新知