采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师说: 事务的性能太慢怎么办? 考虑使用乐观锁
意思是不开启事务去select得到结果,然后也不开启事务的去update,因为没有开启事务,所以缓解了事务太慢的现象吗?这里没太懂,因为一般乐观锁是和分布式锁一起考虑,用其中之一,不知道还能解决事务太慢?
还有一个想问下老师,比如spring里面,方法不加@transactional注解的话,应该不会开启事务,如果不开启事务,去读的话按照什么规则呢?能不能读到别人事务里做的改变?(此时没开事务,应该没有隔离级别把,)
事务的开销是很大的。不加事务能提高不少效率。但代价就是同学说的“没有隔离级别”,其实是我读和写之间没有保护。我读到的始终是当前数据库别人最新commit进来的数据。
所以“乐观锁”,我们通过时比如间戳,或者版本号来进行保护,保证我们的数据从读进来到修改这段时间内没有被别人改过。这里产生另一个代价,如果此时不幸被别人改了,我们的这个“先读后写”的操作就会失败。
老师,那规避这个开销具体好处体现在哪里呢,是指可以加快查询速度,修改速度吗?或者是执行sql的速度? 其实没理解这个开销指的是IO的开销还是什么开销,提高效率指的是提高哪方面的效率呢
这个开销是锁的开销,以及事务本身在启动以及commit的时候所需要分配和释放的资源。
登录后可查看更多问答,登录/注册
为面试新手量身定制的Java面试尊享课,解锁“鲤鱼跃龙门”的妙招
1.2k 4
1.0k 9
1.1k 8
1.9k 7
1.3k 6