事务控制:一组操作要么完全执行,要么完全不执行。在指定一组操作为事务时可以指定其隔离级别。
事务隔离级别:不同的事务隔离级别其本质为采用了不同的加锁机制(写加X锁,读是否加S锁,读/写完成释放还是事务完成后释放等)。使用哪一种隔离级别要考虑业务需求,平衡性能问题与数据一致性问题。(隔离级别越高,阻塞越多,并发性越差,吞吐率下降)若不设置隔离级别,我们也可以通过原语操作解决数据不一致问题,但是很麻烦。
并发控制技术:数据库产品实现了的协议。
一、二、三级加锁协议表示某种加锁机制,
事务的原子性并不是指平常理解的不会被打断的操作,而是指事务完整的执行,中间有失败则回滚,完全的不执行。事务A执行未提交时有可能执行事务B,因此在并发环境下有可能出现脏读,幻读,不可重复读的问题。
因此,将一组操作设置为事务与将一组操作加锁是不一样的。
隔离级别不到串行化的事务会并发的执行,实现事务的锁是对数据加锁,事务A对数据D加了写锁,在其释放前,其他事务不能读写数据D。
将一组操作加锁,则使用同一个锁对象的线程会被阻塞。