请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

既然快照读读取的数据有可能只是历史版本,读取之后在做操作,这。。不是有问题吗

正在回答 回答被采纳积分+3

1回答

翔仔 2020-03-13 00:15:09

同学好,虽然最终都类似使用当前读进行修改,但是快照读只是为了解决将数据及时读出的请求,然后将数据返回到程序里,去按照自己的业务需求进行处理,就好比简单的库存的实现,有一个针对某个商品的库存字段,大家都在访问页面,查看库存数,会有并发下单的行为,此时会有update 和select的同时进行,总不能因为update而锁了其他人查询库存的数量的操作,所以此时数据可能不是实时的,但是能满足查询需求

0 回复 有任何疑惑可以回复我~
  • 提问者 慕娘7010603 #1
    老师,这样的理解对不对
    快照读在读取的那一刻就是当前读,只能读取到事务id比当前的事务id小的且已经提交的,数据就是最新已经提交的事务的数据,因为mysql是自动提交的,所以程序中每一个sql语句都当成一个事务,那每一个语句也就都读到了当前的最近更新的值。
    回复 有任何疑惑可以回复我~ 2020-03-13 15:37:41
  • 翔仔 回复 提问者 慕娘7010603 #2
    同学好,是的,所以能满足业务及时获取数据的需求
    回复 有任何疑惑可以回复我~ 2020-03-13 23:56:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信