十:MYSQL中的事务
Posted wdmlsx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十: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---可重复读
以上是关于十:MYSQL中的事务的主要内容,如果未能解决你的问题,请参考以下文章