数据库事务特性及隔离级别

    xiaoxiao2022-07-14  137

    一 . 什么是事务

          事务是一组操作序列,要么都执行,要么都不执行,是一个不可分割的操作单位,

          如数据库的SQL语句,一条SQL或者一组SQL语句要么都执行,要么都不执行,

          其作用:维护数据库的数据一致性

    二 . 事务的特性

    A:(Atomic 原子性) 从事务的开始,到事务的结束为一个逻辑单元,这些操作要么全成功,要么全失败C:(Consistency 一致性) 数据库的数据从一个一致性转变到另一个一致性I: (Isolation 隔离性) 本事务不会被其他事务所干扰会影响D:(Durability持久性) 事务一但提交成功,对数据库中的数据改变是永久性

    三 . 事务的隔离级别

        1.Read Uncommitted 读未提交 

            事务A查询了事务B为提交的修改数据,事务B将数据回滚,导致事务A读取了脏数据(脏读主要针对Update)

       2.Read Committed  读已提交

            只能查看事务提交后的数据

       3.Repeatable Read  可重复读

            同一个事务内,多个并发实例查询数据时,会看到同样的行数,(MySQL默认隔离级别),但会有幻读的可能

           (不可重复读:一个事务内,多次相同的查询,得到不同的结果,因为在查询过程中数据被别一个事务修改,并提交)

      4.Serializable 可串行化

           事务的最高隔离级别,强制性给事务排序,保证顺序性,使之不可能冲突,从而解决幻读(但会大幅度降低数据库性能)。

          (幻读主要针对Insert或Delete,同样是一个事务内,两次查询数据的条目数部队。比如:第一次查询1条数据,事务的过程中,另一个事务有Insert一条数据,再次查询会出现2条数据)

     

     

    最新回复(0)