MySQL——事务概述(1)

在MySQL中,事务由单独单元的一条或多条SQL语句组成。在这个单元中,每条MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中一旦某条SQL语句执行失败或产生错误,整个单元将会回滚,所有受到影响的数据将返回到事务开始以前的状态;如果单元中的所有SQL语句均执行成功,则事务被顺利执行。

应用事务处理网上交易流程

相信大多数用户都有过网上购物的体验,即用户登录某个大型购物网站,浏览该网站中所陈列的商品信息,将喜欢的商品放入购物车中,选购完毕后,用户需要对选购的商品进行在线支付,当用户对所选商品付款完毕,通知商家发货,在此过程中。用户所付货款并未提交到商户手中,当用户收到货物之后,可以确认收货,商家才收到商品货款,整个交易过程才算完成。如果任何一步操作失败,则都会导致双方陷入尴尬的境界,试想当用户选购商品,付款操作完成后,用户选择在发货过程中取消订单。这时商家并没有得到货款将取消操作,如果不应用事务处理,则用户在取消订单操作过程后,商家仍然继续将用户所订购的商品发送给用户,这会导致一些不愉快的争端。故在整个交易过程中,必须采用事务来对网上交易进行回滚操作。

在网上交易流程过程中,商家与用户的交易可以被认为是一个事务处理过程,如果在交易流程中存在一个环节失败,都可能导致双方交易的失败。如前面事务定义所说,所有这些流程都应该被成功执行,在MySQL中如果有任何命令失败,都会导致所有操作命令被撤销。系统返回未操作前的状态,即回滚到初始状态。添加到购物车、在线付款、商家发货等构成了一个基本的事务。整个交易流程可以被看作一个完整的单元,用于实现整体事务。

通过InnoDB和BDB类型表,MySQL事务能够完全满足事务安全的ACID测试。但是并不是所有表类型都支持事务,如MyISAM类型表就不能支持事务,只能通过伪事务对表实现事务处理。

说明

ACID指出每个事务型RDBMS必须遵守的4个属性,即原子性、一致性、孤立性和持久性。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值