首页 > 项目 > 当前页面

什么是脏读、幻读、不可重复读的?

2025-01-10 NEW个对象

脏读:读到其它事务没有提交的数据
不可重复读:能够读到其它事务已经提交的数据,在事务第二次读取数据的时候,前后不一致。
脏读:当一个事务insert数据之后,当前事务读取的条数不一致

如何解决脏读、幻读、不可重复读的?

Innodb主要通过mvcc机制和间隙锁来解决的

脏读:设置隔离级别读已提交,事务只能读取到事务已经提交的数据。

在读已提交隔离级别下,innodb获取的是最新的事务id,从而获取到最新的提价数据。

不可重复读:设置隔离级别可重复读。

可重复读事务开启前后,事务id是一样的,所以获取的数据是一样的。

幻读:设置隔离级别可串行化。

可以彻底解决幻读问题,但是性能很差,因为读写都要加锁。

相关文章

  • SQL基础知识

    SQL基础知识

    NEW个对象 2025-01-13

  • MySQL核心知识体系(基于XMind整理版)

    MySQL作为典型的关系型数据库,其核心能力围绕“存储、索引、事务、锁、日志、复制”六大模块展开。 在高并发系统中,MySQL不仅是数据存储工具,更是整个业务系统稳定性的基石。

    NEW个对象 2026-06-08

  • 如何保证缓存与数据库一致性?

    在高并发系统设计中,缓存(Cache)和数据库(DB)几乎是所有互联网系统绕不开的话题。 缓存负责提升访问性能,数据库负责数据持久化存储。 然而随着系统规模扩大,一个核心问题逐渐浮现:

    NEW个对象 2026-06-08

NEW个对象 NEW个对象
JAVA是世界上最好的语言