十:MYSQL中的事务

前言:

  因为没有多少时间和精力,目前无法深入研究数据库中的事务,比如

  但是,对于事务的一些基本知识,还是需要牢牢掌握的,做到了解事务的基本常识,在实际开发中能够理解各个持久层框架对事务的处理

一:是么是事务?

  下面是百度百科的结果

   

    在开发中对于一个业务逻辑需要对数据进行的一系列CRUD操作,这一系列操作,我们可以把它称为一个事务

    这样理解事务就必须了解事务四大特性:原子性 、一致性、隔离性、持久性

二:事务的四大特性--ACID

  2.1:原子性

    在一个事务中对数据的所有操作,属于一个单元,不可分割,只有成功或者失败,不可能某个操作成功某个操作失败

  2.2:一致性

    事务前后,数据的一致性,在既定规则下的事务处理过程中,必须严格按照既定规则操作数据,不可破坏规则

    维护数据的一致性任务应该由程序员来完成

    比如数据修改前为 10.00 修改完后变成了 5.5 满足一致性应该为5.50(这是我自己的理解)

  2.3:隔离性

    体现在并发事务情况下,多个事务互相隔离,互不影响

  2.4:持久性

    在正确提交事务后,对数据的修改将是永久性的

三:事务的隔离级别

  体现在并发事务中的读的操作

  事务有四个隔离级别:READ-UNCOMMITTED 、  READ COMMITTED、 REPEATABLE READ 、 SERIALIZABLE

  3.1:脏读

    在事务A中读取到事务B修改了但是未提交的数据

  3.2:不可重复读

    解决了脏读,但是在事务A中可以读取到事务B提交后的数据(导致在事务A中多次执行相同的读的操作的结果不同)

  3.3:可重复读

    解决了不可重复读,但是事务B在提交事务前后分别执行读相同操作读取数据,发现前后结果不一样,好像之前读到的数据是一个幻象

  3.4:串行化

四:事务的分类

  4.1:扁平事务(FLAT TRANSACTION)

  4.2:带有保存点的扁平事务(FLAT TRANSACTION WITH SAVPOINTS)

  4.3:链式事务(Chained TRANSACTION)

  4.4:嵌套事务(Nested Transaction) InnoDB不支持

  4.5:分布式事务(Distributed Transaction)

五:MYSQL中的事务

  innoDB是MYSQL数据库的默认存储引擎,支持事务操作

  本来想自己亲手测试一下,不同事务隔离级别对数据读取的影响,想想还是算了吧,了解了就可以了

  MYSQL默认事务隔离级别是REPEATABLE READ---可重复读

  

猜你喜欢

转载自www.cnblogs.com/wdmlsx/p/9275904.html