MySql数据库事务的4大特性

这个问题经常会在一些面试题中被问到。总得来说,数据库事务的4大特性可以简称为ACID

1、原子性(Atomicity

事务中包含的程序作为数据库的逻辑工作单位,它对数据库中的数据进行操作时,要么全部执行,要么都不执行。

举个例子,你给小A转账500块时。这个时候银行的数据库会将你卡里的金额减500,同时小A卡里的金额增加500。不存在你的钱被扣,小A的钱没加。或者你的钱没扣,小A的钱增加了。

2、一致性(Consistancy

一个事务执行前和执行后,数据库都必须要处于一致性的状态。

这句话是怎么理解:就是你给小A的卡里转了500块,不管怎么样你卡里的钱和小A卡里的钱的总和是不变的。不会出现你们两的钱相加之和会出现变化的。

3、分离性、独立性(Isolation

分离性是指在并发的事务是相互隔离的。即一个事务的内部操作及正在操作的数据必须被封锁起来,不会被其他的事务来企图修改。这一点和Java中多线程编程的同步锁很像。

举个例子:假如你给小A打钱过去,同时小B也在给小A打钱。这时候数据库服务器中要么会让你的事务先执行,或者让小B的事务先执行。不存在你两个的打钱动作会同时来修改小A卡里的金额。

4、持久性(Durability

持久性是指当数据库系统出现故障了,要确保已经提交的事务的更新是不会丢失的。即数据库中的数据的修改是永久性的。就算系统出现了故障,我们也可以使用数据库的备份和恢复来保证数据的修改。

举个例子:当你从卡里面取出500块,在银行的数据库中你的卡里的金额会减少500。就算银行的数据库进行维修,等到再次恢复的时候你的卡里的钱还是减少500的。不存在取了钱,由于数据库的故障你卡里的钱不变这种情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值