课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
学习数据库架构我们就不得不学习数据库事务的一些相关技术知识,而本文我们就通过案例分析来简单了解一下,数据库事务应用与特性分析。
使用事务有两种方式,分别为:隐式事务和显式事务。
隐式事务
隐式事务又称自动提交事务,顾名思义就是当执行完一条SQL语句后,会自动commit提交。
MySQL默认使用的就是隐式事务。
显式事务
如果我们想关闭自动提交,可以使用下边的两种方法之一:
显式的的使用starttransaction或者begin语句开启一个事务。这样,在本次事务提交或者回滚之前会暂时关闭自动提交功能。
把系统变量autocommit的值设置为off或者0:setautocommit=off。这样,本次会话将关闭自动提交功能。不论是否显式的开启一个事务,每次执行事务都需要使用commit进行提交让事务生效,使用rollback对事务进行回滚。
事务的特性分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
下面我们分别介绍这四个特性。
一致性:一个事务能够正确地将数据从一个一致性的状态,转换到另一个一致性的状态。
数据的一致性状态是指数据满足我们事先定义好的约束规则。也就是在事务执行的过程中,不论出现什么问题(比如停电、宕机),终的执行结果都是满足我们事先定义好的约束规则的。
数据的一致性就是正确性。
原子性:一个事务中包含的所有操作,要么全部执行,要么一个都不执行,即all-ornothing。
事务在执行过程中出现故障(宕机、断电、进程崩溃、某种完整性约束被违反),导致操作不能全部执行时,事务会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
隔离性:如果多个事务并发执行,事务之间不应该出现相互影响的情况,它其实就是数据库的并发控制。
数据库试图通过事务隔离来对应用开发者隐藏,事务并发时可能出现的各种异常情况。
在实践中,由于考虑到性能的问题,会在高性能与正确性之间做一个权衡。使用者可以根据自己的业务场景,选择一个合适的隔离级别。
持久性:如果一个事务已经提交成功,那么不论出现什么问题(比如停电、宕机、存储介质发生故障、数据库崩溃),事务所写入的任何数据都不会丢失。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。