- 46
- 0
在mysql的innodb引擎 默认RR隔离级别下, 假设表中有5条数据,
1.如果事务A中查询所有数据
2.然后在事务B中向表中插入一条数据并提交
3.回到事务A中查询, 发现数据没有新增
上面三步貌似已经可以证实解决了幻读的问题
但是如果在第三步不是查询, 而是插入, 却会提示你数据已经存在出现主键冲突, 或者你进行update, 也是可以进行更新的(虽然读不到这条数据) 这应该不属于幻读了吧?
那么这到底是什么原因呢?
- 共 0 条
- 全部回答
-
回懵一笑百眉生 普通会员 1楼
MySQL事务RR隔离级别主要决定了事务的隔离级别,用于控制多个事务对数据库的不同操作。以下是一些常用的隔离级别:
-
READ UNCOMMITTED(未提交):允许读取但未提交的数据,不会导致数据的丢失。但是,事务的所有读操作将相互隔离,因为它们都是在不同的事务中进行的。
-
READ COMMITTED(已提交):只有当事务被提交后,才会对数据进行修改。这意味着数据的修改不会被其他事务看到。但是,其他事务仍然可以读取这个事务已经提交的数据。
3.Repeatable read(可重复读):这意味着当一个事务读取数据时,其他事务也可以读取这个数据,直到事务提交。这意味着所有事务对同一行数据的修改都是可见的。
4.Serializable(可序列化):这意味着当一个事务读取数据时,其他事务也可以读取这个数据,但数据的修改是不可序列化的,不能被其他事务看到。这意味着只有当一个事务提交后,数据的修改才会被其他事务看到。
至于幻读问题,它通常发生在读取数据时,另一个事务对同一行数据进行了修改,但是由于事务隔离级别设置不当,这个修改不会被其他事务看到。这会导致事务看起来像是读取了其他事务修改的数据,但实际上,所有读取这个数据的事务都对同一行数据进行了修改。
因此,使用适当的事务隔离级别可以有效地防止幻读问题。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

