什么是事务?

  事务是数据库的一个特性,组成事务的各个执行单元,要么都成功,要么都失败

 

事务的四个特性?

    原子性:  强调的是事务不可分割的特性

    一致性:强调的是事务执行前后数据需要报纸一致

    隔离性:强调的是多个事务同时操作一条记录,事务之间不能互相干扰

    持久性:强调的是事务一旦结束了,数据将永久保存到数据库中

 

在不考虑事务的隔离性的情况下,会导致的问题

  脏读:一个事物读取到另一个事务未提交的数据

  不可重复读:一个事务读取到了另一个事务提交了的数据,导致了多次查询结果不一致,强调的是update,修改记录的数据

  虚读(幻读):一个书屋读取到了另一个事务提交了的时间,导致了多吃查询结果不一致,强调的是insert,插入记录的数据

 

设置事务的隔离级别(解决读的问题)

    Read uncommitted 什么都解决不了

    Read committed 避免脏读,但是不可重复读和虚读有可能产生

    Repeatable read 避免脏读和不可重复读,有可能产生虚读

    Serializable    避免各种读

 

 

种隔离级别有安全性和效率

    安全    Serializable > Repeatable read > Readcommitted > Read uncommitted

    效率    Serializable < Repeatable read < Readcommitted < Read uncommitted

     

数据库都有自己默认的隔离级别

    MySQL数据库,默认的隔离级别是Repeatableread,避免脏读和不可重复读。

    Oracle 数据库,默认的隔离级别是READCOMMITTED,避免藏独