mysql innodb中 select for update 和直接update 的差别

假设有张table,有三列,id主键,还有两列分别是a和b,a上有索引

现在有个事务
begin
select * where a=1 for update
update b=2 where a=1
commit

直接update b=2 where a=1

的差别是啥?

在我看来都是加记录锁,然后更新,然后释放锁,难道有性能上的差别吗?

阅读 3k
1 个回答

加锁的主要目的是为了防止数据污染,在事务执行过程中,被其他因素所改变,导致处理结果不符合预期。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题