什么是脏读、幻读、不可重复读的?
2025-01-10
NEW个对象
脏读:读到其它事务没有提交的数据
不可重复读:能够读到其它事务已经提交的数据,在事务第二次读取数据的时候,前后不一致。
脏读:当一个事务insert数据之后,当前事务读取的条数不一致
如何解决脏读、幻读、不可重复读的?
Innodb主要通过mvcc机制和间隙锁来解决的
脏读:设置隔离级别读已提交,事务只能读取到事务已经提交的数据。
在读已提交隔离级别下,innodb获取的是最新的事务id,从而获取到最新的提价数据。
不可重复读:设置隔离级别可重复读。
可重复读事务开启前后,事务id是一样的,所以获取的数据是一样的。
幻读:设置隔离级别可串行化。
可以彻底解决幻读问题,但是性能很差,因为读写都要加锁。
上一篇:线程和进程的区别?
下一篇:线程同步与线程安全的区别?
相关文章
-
ThreadLocal 的 key 为什么是弱引用,value 是强引用?
ThreadLocal 的 key 为什么是弱引用,value 是强引用?
NEW个对象 2026-06-13
-
认证授权:OAuth2简介及四种授权模型详解
认证授权:OAuth2简介及四种授权模型详解
NEW个对象 2026-06-11
-
有哪些数据安全的方案?
1、锁 2、单线程,比如:redis 3、不共享变量,比如:ThreadLocal 4、原子操作,比如:AtomicInteger 5、不可变模式,比如:一旦创建不能修改,修改就会再次创建一个新的对象,String 6、读写分离,写时复制,比如:CopyOnWriteArrayList
NEW个对象 2025-02-11
NEW个对象
JAVA是世界上最好的语言