开发者社区> 问答> 正文

MySQL中幻读及脏读使用场景是什么

不知道幻读与脏读的使用场景是什么? 业务中能否举个例子

展开
收起
道月芬1 2021-10-13 08:15:24 4177 0
1 条回答
写回答
取消 提交回答
  • 精于基础,广于工具,熟于业务。

    脏读对应的就是读取未提交导致的,如果事务A读取了数据D,然后数据D被事务B修改(但并未提交,事务B仍在运行中),事务A再次读取数据D时,数据修改是可见的。如果事务B回滚,那么事务A第二次读取的数据D是无意义的,因为那是事务B所做的从未发生的修改(已经回滚了嘛)。这叫脏读(dirty read)。 图片.png

    幻读对应的隔离级别是可重复读,如果一个事务成功执行并且添加了新数据(事务提交),这些数据对其他正在执行的事务是可见的。但是如果事务成功修改了一条数据,修改结果对正在运行的事务不可见。所以,事务之间只是在新数据方面突破了隔离,对已存在的数据仍旧隔离。 图片.png

    2021-10-13 08:47:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载
阿里云企业级自治数据库 RDS 详解 立即下载
阿里云MySQL云数据库产品体系介绍 立即下载

相关镜像