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

一 . 什么是事务

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

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

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

二 . 事务的特性

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

三 . 事务的隔离级别

    1.Read Uncommitted 读未提交 

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

   2.Read Committed  读已提交

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

   3.Repeatable Read  可重复读

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

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

  4.Serializable 可串行化

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

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

发布了38 篇原创文章 · 获赞 1 · 访问量 1074

猜你喜欢

转载自blog.csdn.net/yu13843271857/article/details/90490101
今日推荐