数据库事务:数据库操作的最小的单位,是数据库操作的操作序列,具有四个特性。
原子性:数据库的操作要么全部执行,要么全不执行,举例银行转账
隔离性:在一个事务对某条数据进行操作的时候,其他事务不可以进行操作,保证了数据的安全性。
一致性:数据经过操作以后由一种状态变成另外一种状态,前后保持一致。
持久性:事务对数据库操作以后,对数据库的影响是永久的,如果操作结束,就算数据库崩溃,保存的数据仍然不发生改变。
针对隔离性:衍生出了要解决的问题:
脏读:一条数据被rowback以后,读的是之前没有回退的版本,进而造成了脏读。
不可重复读:两次事务对同一条数据前后两次读取的数据不一样,从而产生了不可重复读
幻读:两次事务查询出的数据条数不太一致,进而称为幻读
读未提交:最低等级的隔离级别,所有的都可能产生
读已提交:可以解决脏读的问题
可重复读:可以解决脏读还有不可以重复读的问题
序列化: 可以完美的解决所有的问题,但是付出的代价是高并发的代价