白癜风如何治疗比较好 http://www.xxzywj.com/m/事务的基本原理
数据库事务
通常的观念认为,事务仅与数据库相关,它是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。数据库事务通常包含了一个序列的对数据库的读/写操作。使用事务,是为了达到以下两个目的:
为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法
当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰
当事务被提交给了数据库管理系统,数据库管理系统需要确保该事务中的所有操作都完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立地运行。
举例来说,某人在商店使用电子货币购买元的东西,当中至少包括两个操作:
该人账户减少元
商店账户增加元
那么此时,这个交易系统的数据库管理系统,就必须要确保以上两个操作同时成功或者同时失败。在现实情况中,失败的风险其实是很高的,网络环境、程序代码的漏洞、数据库系统/操作系统出错、甚至存储介质出错等都有可能引起其中某一方失败的情况。因此,这就需要数据库管理系统对一个执行失败的事务执行恢复操作,将数据库恢复到数据一致的状态。为了实现将数据库恢复到一致状态的功能,数据库管理系统通常都需要维护事务日志,以追踪事务中所有影响数据库数据的操作。
开启事务开使用语句BEGIN,提交事务可以使用COMMIT。默认情况下,MySQL(innodb)会启用后自动提交模式(auto