在方法上加了@Transactional(propagation = Propagation.REQUIRED, timeout = 5,isolation = Isolation.SERIALIZABLE)事务隔离级别,但是 Read committed并不能解决我的问题,我设置为了最高级别,就不需要睡眠时间。
不建议加synchronized,乐观锁也能解决并发问题 而且没看出来哪有脏数据了,事务隔离级别设置成Read committed就可以避免脏读了
本课程以Oracle 10g数据库为基础,来讲解大事务的数据更改在数据库内部是如何处理的。
当用户执行一条SQL对数据库进行更改操作的时候,我们知道数据是从磁盘读取到内存中进行更改操作的,
那么当这个SQL执行时间很长,而且修改数据量非常大,由于内存容量大小的原因,可能在事务没有commit
提交的情况下,一些脏数据已经写回到了磁盘中。
那么在这种情况下,当用户执行commit提交操作,数据库是如何处理这些已经写到磁盘的脏数据块的?
本课程就以实验的方式得出数据,来验证以上所提出的问题。
4.9w+
社区成员
8.5w+
社区内容