栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL-事务特性ACID你真的懂吗?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL-事务特性ACID你真的懂吗?

ACID分别是 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

概念的东西就不在赘述了,最近遇到一个关于事务隔离性的问题。

简单回顾一下关于事务隔离特性的几个级别

read uncommitted(读未提交) 、read committed(读提交) 、repeatable read(重复读) 、Serializable(序列化)

查看当前数据库事务隔离级别 select @@transaction_isolation;

参考文献:MySQL :: MySQL 8.0 Reference Manual :: 13.3.7 SET TRANSACTION Statement

简单讨论一下几个关于隔离特性的几个问题

问题1 可重复读指的是什么?

在同一个事务中同一条查询语句返回的结果是相同的。不受其他事务影响。

问题2  在同一个事务中如果amount发生了update或insert操作,事务在未提交前查询返回的结果是否是更新后或插入后的结果?为什么?
答案:会 读取到后更新或插入后的结果。这是因为select 读取数据有个两种模式,如果不加锁的模式为快照读 ,如果添加锁(lock in share mode,for update)为当前读。

问题3 事务中快照读和当前读分别怎样解决重复读级别下幻读问题的?

mvcc和next-key锁

MySQL 到底是怎么解决幻读的?-CSDN论坛

问题4 两个事务中都没有提交情况下,每个事务中分别执行insert语句 执行顺序对最后表中结果有什么影响?为什么?

表会按照执行insert顺序记录。对于UPDATE、DELETE和INSERT语句,InnoDB会自动给涉及数据集加排他锁(X)

看到这里你可能还是不太明白,如果你读完下一篇MYSQL锁的文章你自然就明白了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号