数据库隔离级别--可重复读的设计目的是什么

发布于 2022-01-01 11:42:01 字数 137 浏览 969 评论 2

我的理解是:可重复读是指,在一次事务内,对同一条记录的读取,得到的结果都是一样的。

问题是:我每次读取数据库不就是为了获取最新且已提交的数据吗?为什么要保证可重复读,还不如把第一次读取结果保存起来,以后每次要用就复制一份,用得着再去查询数据库?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

霞映澄塘 2022-01-03 23:02:12

为什么要保证可重复读,还不如把第一次读取结果保存起来,以后每次要用就复制一份 ,业务层面就可以做到 还可以减小数据库压力?

初见你 2022-01-02 14:38:18

可重复读取的意义个人理解,是为了保证在当前这个事务内读取的结果不会受到其他事务的影响

比如说在一个A事务里面 select user_name from user where user_id=1; 查询出来是A同学

然后B事务update  user set user_name = 'B同学' where user_id = 1) 提交事务

A事务再次查询select user_name from user where user_id=1;就变成了B同学,造成了一个事务里面查询结果不一致,这个就是不可重复读.

mysql的模式事务隔离级别就是 可重复读(repeatable-read)

要知道4个事务隔离级别 读未提交,不可重复读,可重复读,串行化,他们的隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文