Mysql数据库事务的特性及运用

   <李>

本文主要给大家简单讲讲Mysql数据库事务的特性及运用,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望Mysql数据库事务的特性及运用这篇文章可以给大家带来一些实际帮助。

二,Mysql, ODBC,,数据库事务

2.1。多事务同时执行:

,,,彼此之间互不影响的方式进行并行;事务之间交互,通过数据集只,


开始事务:,启动事务命令,数据库只有启动了事务才允许回滚撤销等操作。

,,,,,,,,,,,,,,,,,,,,,,,且数据的发动机引擎必须是innodb,才支持事务

回滚:,mysql,回滚事务,只要没有提交开启了事务都可以进行回滚操作。

提交:,,,,,事务提交,事务提交后无法进行回滚操作。


若未明确启动事务:autocommit能实现自动提交,每一个操作都直接提交;

强烈建议:明确使用事务,否则所有操作都被当成一个事务来处理,并关闭自动提交。

,,,,,,否则浪费mysql很多IO操作,每写一条语句都执行提交至持久性存储,很浪费资源


2.2。事务的特性:

,2.2.1。原子性:原子性

,,,,,事务所引起的数据库操作,要不都完成,要么都不执行;

,2.2.2。一致性:一致性

,2.2.3。隔离:隔离性

,,,,事务调度:事务之间影响最小

,,,MVCC:大敌;多版本并发控制

,2.2.4。耐久性:持久性,

,,,,一旦事务成功完成,系统必须保证任何故障都不会引起事务表示出不一致性;

,,,,,,,,,1、事务提交之前就已经写出数据至持久性存储;

,,,,,,,,,,2,结合事务日志完成;

,,,,,,,,,,,,,,,事务日志:顺序IO

,,,,,,,,,,,,,,,数据文件:随机IO

,收于2.3点。事务的状态:

,,,,,,,,活动的:,活跃的

,,,,部分提交的:最后一条语句执行后

,,,,,,,,失败的:

,,,,,,,,终止的:

,,,,,,,,提交的:

状态间的转换过程,,,,

 Mysql数据库事务的特性及运用“> </p> <p>,2.4。事务并发执行的优势:</p> <p>,,,,,,,1,提高吞吐量和资源利用率,,2,减少等待时间</p> <p> <br/> </p> <p>,, 2.5。事务调度:,,,,1,可恢复调度,,,,,,,,,,,,,2,无极联调度</p> <p> <br/> </p> <p> </p> <h3>三,实例:</h3> <p> 3.1。设置自动提交开关<br/> </p> <p> </p> <p> mysql>,选择@@AUTOCOMMIT;,#自动提交的状态1为开启,0为关闭,</p> <p> + - - - - - - - - - - - - - - - - + </p> <p> | @@AUTOCOMMIT | </p> <p> + - - - - - - - - - - - - - - - - + </p> <p> |,,1,| </p> <p> + - - - - - - - - - - - - - - - - + </p> <p> 1行组(0.00秒),</p> <p> mysql>,设置自动提交=0;,#设定自动提交关闭</p> <p>查询好,0行影响(0.00秒)</p> <p> mysql>,选择@@AUTOCOMMIT;,#查询自动提交的状态1为开启,0为关闭,</p> <p> + - - - - - - - - - - - - - - - - + </p> <p> | @@AUTOCOMMIT | </p> <p> + - - - - - - - - - - - - - - - - + </p> <p> |,,0,| </p> <p> + - - - - - - - - - - - - - - - - + </p> <p> 1行组(0.00秒)</p> <p> <br/> </p> <p> 3.2。回滚事务</p> <p> </p> <p> mysql>,设置自动提交=0;,,#设定自动提交关闭</p> <p>查询好,0行影响(0.00秒)</p> <p> mysql>, commit ,,#将之前的事务全部提交</p> <p> mysql>,删除从学生的名字像& # 39;李% & # 39;;,,#删除名称字段包含李的行</p> <p>查询好了,1行影响(0.03秒)</p> <p> mysql>,从学生选择*;,,,,李#哪行已经被删除</p> <p> + - - - - - - - - - - - - - - - - - - +——+——+ </p> <p> | SID年龄| | |名称CID | </p> <p> + - - - - - - - - - - - - - - - - - - +——+——+ </p> <p> | | 2 |成龙,0 |,2 | </p> <p> | 3 |杨过|,0 |,3 | </p> <p> | 4 |郭靖|,0 |,4 | </p> <p> + - - - - - - - - - - - - - - - - - - +——+——+ </p> <p> 3行组(0.00秒)</p> <p> mysql>,回滚;,,#回滚事务,自动提交关闭后,默认就开启了事务,可以实现回滚等操作</p> <p>查询好,0行影响(0.01秒)</p> <p> mysql>,从学生选择*;,#删除的行恢复了<br/> </p> <p> + - - - - - - - - - - - - - - - - - - +——+——+ </p> <p> | | SID名字,年龄| | CID | </p> <p> + - - - - - - - - - - - - - - - - - - +——+——+ </p> <p> |,1 |李连杰是|,0 |,1 | </p> <p> |,2程| |,0 |,2 | </p> <p> |,3 |杨郭,|,0 |,3 | </p> <p> |,4 |郭靖,|,0 |,4 | </p> <p> + - - - - - - - - - - - - - - - - - - +——+——+ </p> <p> 4行设置(0.00秒)</p> <p>,,,,</p> <p> 3.2只保存点:恢复到所定义的那个保存点保存点,保存点名称不能为纯数字。</p> <p>保存点:保存点savepoint_name;,保存以上操作为该保存点名称<br/> </p> <p>回滚保存点:回滚,savepoint_name;,回滚到该保存点之前的状态</p> <p> <h2 class=Mysql数据库事务的特性及运用