数据库事务详解

事务::事务是恢复和并发控制的基本单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。

事务四个特性:1.原子性:事务中的各个操作要么都做,要么都不做

       2.一致性:事务必须使数据库从一个一致性状态变换到另一个一致性状态

       3.隔离性:一个事务的执行不能被其他事务干扰

       4.永久性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性

 

脏读:一个事务处理过程里读取了另一个未提交事务的数据

不可重复读:一个事务内多次查询却返回了不同的数据值(强调update)

幻读:一个事务范围多次查询返回不同的数据值(强调 insert,delete)

 

Sring中五种隔离级别:

    TRANSACTION_NONE:不使用事务

    TRANSACTION_READ_UNCOMMITTED:允许脏读

    TRANSACTION_READ_COMMITTED:防止脏读,最常用的隔离级别,大多数数据库默认的隔离级别

    TRANSACTION_REPEATABLE_READ:防止脏读和不可重复读

    TRANSACTION_SERIALIZABLE:防止脏读,不可重复读,幻读,效率低

 

回滚:回滚通常是由数据库日志管理的,回滚时反向执行从事务开始时的所以日志。其他运行的事务可能依赖于被回滚的事务的结果,在这种情况下,这些依赖的事务也会被回滚

posted @ 2017-06-15 11:37  雪浪snowWave  阅读(131)  评论(0编辑  收藏  举报