mysql 事务 引擎_mysql引擎与事务

mysql 引擎

存储一份文件,

不管用什么存储方式,不变的数据,变化的时存储的格式

总结:engine引擎就是Mysql存储数据的不同方式

就像一部电影,内容一样

avi,mp3,mkv。。。就是不同的engine

create table(

)engine myisam charset utf8;

存储引擎与其特点:

myisam         innodb

批量出入的速度       高                      低

事务安全          否      支持

锁机制      表锁     行锁

建立两张表,但是引擎不一样

create table v1(

uname varchar(20),

money int

)engine myisam charset utf8;

create table v2(

uname varchar(20),

money int

)engine innodb charset utf8;

两张表在存储数据上是一样的

举例:

1.如果多人买火车票,用两个窗口来模拟,2个人在购买,

只有一张票,几乎同时查询,

两人同时下单购买

2.银行转账

张三给李四转500块,

张三-500,李四+500

这两部必须都完成了,转账才完成

像这种,2步或n步,从逻辑上讲,是一个“原子操作”

即,要么成功,要么不成功

如何保障这种特性?

答:事务

事务特性:

1。原子性:2步或n步操作,逻辑上不可分割,

通俗说:要么成功,要么都不成功

演示事务的原子性:

如何使用事务呢?

start transaction 开启事务

张三加500,李四减500

两步完成了,事务完成了,

提交这个事务:commit

事务的体现呢?

再次开启事务,体现事务的原子特性

张三加500,

接下来扣李四500失败了,

部分失败,则之前的成功操作怎么处理?

答:回滚。rollback

此时张三的钱变回初始值

2.一致性:

指操作前后,值的变化,逻辑上成立

3.隔离性:

事务结束前,操作的每一步所带来的影响,别的会话都不可见

commit指令输入后才代表事务结束

4.持久性

事务一旦完成,无法撤销

比如:ATM取钱

账户-500

吐钞500,钱装兜里,

这时 ,出错了,如何撤销这个事务?

答:事务不能撤销,但确实是一次错误的交易,怎么办?

只能在错一次“补偿事务”,即如果多吐了500,只能从你的账户在扣除500

标签:engine,事务,李四,存储,引擎,mysql,500

来源: https://www.cnblogs.com/fbjtcp/p/10917438.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值