mysql支持事务的储存引擎_mysql事务与mysql储存引擎

事务概念及存储引擎

1.0 为何要事务?

先来看一个场景,银行转账汇款:

李彦宏和周鸿祎天天打架,现在让李彦宏给周鸿祎转款1000 元

设计如下表

account表

编号(id)用户名(user)金额(cash)

1李彦宏3000

2周鸿祎2000

传统的做法:

mysql> update account set cash = cash -1000 where id =2;

update account set cash =cash +1000 where id=1;

缺陷:

不安全。比如减少李彦宏钱的指令执行了,但是增加周鸿祎钱的指令却没有执行成功。

这个时候,我们就要使用mysql的事物机制。

1.1事务

20130318112600842.png

1.2事务的使用

事务相关语句 DTL

20130318112600861.png

1.3事务的四种特性:

1.原子性,是一个不可分割的逻辑单元,一组sql语句,要么都执行,要么都不执行。

2.隔离性,事务中的执行过程是不可见的。

3.持久性,事务一旦提交,就不可撤销。

4.一致性,事务在发生之前和发生之后,数据是一致。(能量守恒)

1.4事务的原理:

传统方式:

20130318112601248.png

事务机制:

20130318112602703.png

上面的例子:李彦宏给周鸿祎转钱用事物的代码:

#开启事物

Start transaction;

#执行的代码

Update account set cash=cash-1000 where id=1;

Update account set cash+1000 where id=2;

#提交

commit

# 语句出错 可以回滚

#rollback

1.5事务在哪些场合下应用:

一般来说,对于安全性要求比较的业务,建议使用事务。

2.0 mysql存储引擎

何为存储引擎?

我们说数据库是组织、存储和管理数据的仓库。那么,数据库存储数据的方式,就是存储引擎。

在mysql中,存储引擎是以插件的形式加载的。Mysql的存储引擎种类繁多,对于我们来说,要熟悉两种存储引擎去,MyISAM和inonoDB。

Myisam不支持事务。

Innodb支持事务。

全文索引在mysql5.5以前版本中,innodb是不支持的,但是5.5以后的版本支持。

常见存储引擎

20130318112602764.png

mysql默认的存储引擎,

在mysql5.5以前的版本:MyISAM

在mysql5.5以后的版本:innodb

如果我们要自己声明存储引擎:

Create table()engine=myisam default charset utf8

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值