mysql系列——事务(Transaction)详解

2018-11-06  本文已影响0人  code_solve

什么是事务

为什么要事务

这个其实用脚趾头想想也知道它的重要性,举个简单的例子:
一个用户提交了一个订单,那么这条数据包含了两个信息,用户信息 和购买的 商品信息,我需要把他们分别存到 用户表 和 商品表,如果不采用事务,可能会出现,商品信息插入成功,而用户信息没有,这时候就会出现无主商品了,用户付了钱,却得不到商品,这就尴尬了,而如果采用事务,就可以保证,用户信息 和 商品信息 都必须插入成功,该次事务才算成功,那就不会出现这种问题了

支持事务的引擎

有时候事务并不一定是必须的,为了提升查询效率,有些mysql引擎是不支持事务的,比如 MyISAM,当然目前新版(好像是5.6以后)默认的引擎是 innoDB 是支持事务的,一般为了提升mysql速度,也会做读写分离,因为事务一般是针对写来说的。

事务的使用

我们主要从以下几个术语开始:

实例

讲了这么多,不来一个实例操作一下,实在是不舒心。。。。下面你可以打开你的mysql 库,按照下面步骤来操作一下,加深下理解:

这里需要注意的是,不要将非自动提交和事务搞混淆了,非自动提交,一般是为了批次提交从而提升效率,但是并不具备事务性,而事务是在批次提交的基础上保证了事务性,所以还是有一定区别的噢

  1. 后言:
    做完最后的实操,最好再对照下 事务的 ACID 四大原则琢磨琢磨,加深一下理解,关于事务的更多更深的研究,那就需要在读的你自己去慢慢耕耘咯。。。嘿嘿 !!!最后希望本文对你还是有一点帮助的!!!
上一篇 下一篇

猜你喜欢

热点阅读