事务的四大特性
原子性:强调事务的不可分割.
一致性:事务执行的前后,数据的完整性保持一致
隔离性:一个事务在执行的过程中,不应该受到其它事务的干扰
持久性:事务一旦结束,数据就持久到数据库中.
不考虑事务的隔离性,引发的安全问题
1.脏读:一个事务读到另一个事务未提交的数据
2.不可重复读:一个事务读到了另一个已经提交的数据,引发一个事务中的多次查询结果不一致
3.虚读/幻读:一个事务读到了另一个事务已经提交的数据,导致多次查询结果不一致.
解决读的问题
设置事务的隔离级别
read uncommitted :脏读,不可重复读,虚读都有可能发生
read committed : 避免脏读,但是不可重复读,虚读有可能发生
repeatable read : 避免脏读和不可重复读, 虚读有可能发生
serializable : 避免脏读,不可重复读和虚读 (串行化的–不可能出现事务的并发访问).
安全性:serializable > repeatable read > read committed > read uncommitted
效率 :serializable< repeatable read < read committed < read uncommitted