目录
    
    
    
    Mysql的隔离级别,以及存在的并发事务问题
   
    
    
    1. 数据库在并发情况下的常见操作
   
    
    
    1. 读-读
   
不存在任何问题,也不需要并发控制
    
    
    2. 读-写
   
    有线程安全问题,可能会造成事务隔离性问题,可能遇到
    
     脏读
    
    、
    
     不可重复读
    
    、
    
     幻读
    
   
    
    
    3. 写-写
   
    有线程安全问题,可能会存在
    
     更新丢失问题
    
   
    
    
    2. Mysql的隔离级别以及解决的问题
   
    
    
    1. READ-UNCOMMITTED(读未提交)
   
    可能导致的问题:
    
     脏读
    
    
    解决:用
    
     行锁
    
    ,隔离级别升级,
    
     读已提交
    
    或以上
   
    
    
    2. READ-COMMITTED(读已提交)
   
    可能导致的问题:
    
     不可重复读
    
    
    解决:隔离级别升级,升级到
    
     可重复读
    
    或以上
   
    
    
    3. REPEATABLE-READ(可重复读,默认隔离级别)
   
    可能导致的问题:
    
     幻读
    
   
有疑问:有人说,在innodb存储引擎下,默认开启间隙锁,是能解决幻读的问题的
    解决:隔离级别升级,升级到
    
     串行化
    
   
定义:可重复读指的是在一个事务里,我两次select查询到的数据应该是一样的
    
    
    4. SERIALIZABLE(串行化)
   
    可避免幻读。
    
     读加共享锁,写加排他锁
    
    。这样读取事务可以并发,但是读写,写写事务之间都是互斥的
   
    
    
    3. 问:不可重复读和幻读的区别是什么?
   
维度不同,不可重复读是针对某个数据来说的,幻读针对某一行来说的
- 
     不可重复读侧重于
 
 update
 
 这种操作,同一条数据前后读起来不一样的情况,
- 
     幻读侧重于
 
 insert
 
 、
 
 delete
 
 这种操作,前后两次select 数据的数量会发生变化
 
版权声明:本文为weixin_45325628原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
