所在的位置: mysql >> mysql介绍 >> 百度

百度

中科医院曝光 http://pf.39.net/bdfyy/zjft/161225/5154124.html

本节目标:

1、掌握事务的特性与事务并发造成的问题

2、事务读一致性问题的解决方案

3、MVCC的原理

4、锁的分类、行锁的原理、行锁的算法

一,什么是数据库的事务?

事务的典型场景

在项目里面,什么地方会开启事务,或者配置了事务?无论是在方法上加注解,还是配置切面。

tx:adviceid="txAdvice"transaction-manager="transactionManager"tx:attributestx:methodname="save*"rollback-for="Throwable"/tx:methodname="add*"=/tx:methodname="send*"=/tx:methodname="insert*"=///tx:advice

比如下单,会操作订单表,资金表,物流表等等,这个时候我们需要让这些操作都在一个事务里面完成。当一个业务流程涉及多个表的操作的时候,我们希望它们要么是全部成功的,要么都不成功,这个时候我们会启用事务。

在金融的系统里面事务配置是很常见的,比如行内转账的这种操作,如果我们把它简单地理解为一个账户的余额增加,另一个账户的余额减少的情况(当然实际上要比这复杂),那么这两个动作一定是同时成功或者同时失败的,否则就会造成银行的会计科目不平衡。

事务的定义

什么是事务?

维基百科的定义:事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。这里面有两个关键点,第一个,它是数据库最小的工作单元,是不可以再分的。第二个,它可能包含了一个或者一系列的DML语句,包括insertdeleteupdate。(单条DDL(createdrop)和DCL(grantrevoke)也会有事务)

哪些存储引擎支持事务

一是InnoDB支持事务,这个也是它成为默认的存储引擎的一个重要原因:dev.mysql.


转载请注明:http://www.aierlanlan.com/rzfs/1677.html