假设有张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
的差别是啥?
在我看来都是加记录锁,然后更新,然后释放锁,难道有性能上的差别吗?
假设有张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
的差别是啥?
在我看来都是加记录锁,然后更新,然后释放锁,难道有性能上的差别吗?
5 回答3.3k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答2.1k 阅读
3 回答2k 阅读
1 回答3.6k 阅读
加锁的主要目的是为了防止数据污染,在事务执行过程中,被其他因素所改变,导致处理结果不符合预期。