文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL中的事务分析是怎样的

2024-04-02 19:55

关注

MySQL中的事务分析是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

我们都知道,计算机处理的速度非常地快,但是再快的计算机,也面临着这样的问题,同一个时间里面有着非常多的请求都要对统一资源发生操作。所以,在数据库中,引入事务来解决这样的问题。 

我们举个简单的例子,我在街上买了2排益力多,要支付宝转25元给商家,这个时候会这样操作,支付宝先检查我的余额是否还有25元,然后从我的余额中扣取25元,然后商家的支付宝增加25元。假如我的支付宝刚好只有25元,在转给商家的瞬间,我用另外一个手机,在拼多多上面买了一个20元的西瓜,也用支付宝支付,因为有了数据库事务,这两个操作并不会同时成功。

Mysql的数据库有着4大特性,我们称之为ACID。即原子性,一致性,隔离性,与持久性。

原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。在上述例子中,要么我扣了25元,益力多的商家多了25元,要么我不扣钱,商家也不多钱。不会存在扣了我的钱,商家又没收到钱的情况。那估计每天都是各种投诉跟纠纷。

一致性(consistency)数据库总是从一个一致性的状态转换到另一个一致性的状态。(在前面的例子中,一致性确保了,这25元要么在我这还没给商家,要么已经到达商家账户了,不会存在这25元凭空消失的情况。)

隔离性(isolation)通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。(在前面的例子中,当我还在支付给小卖部卖家25元的时候,对于我另外一个在拼多多上付款的事务,是觉得我还有25元的,只有当我整个事务提交后,另外一个事务才知道我已经扣除了对应的数额。所以,我们在执行扣除的时候,同时也要判断余额是否足够。)

持久性(durability)一旦事务提交,则其所做的修改将永久保存到数据库。(此时即使系统崩溃,修改的数据也不会丢失。)

实时上,如果数据库要严格遵循这这个性质,势必会造成数据库的性能降低。所以,在InnoDB中,是有着多种不同的事务级别的。分别是读未提交,读已提交,可重复读,,与串行化四种突通的级别。

读未提交:别人改数据的事务尚未提交,我在我的事务中也能读到。上述例子,假如拼多多的扣款是发生在我的金额已经减少25之后,但是事务还没提交,这个时候读取数据库,就已经读到数据是0了。很显然,如果这个时候,前面的时候回滚了,那么这个读取到的结果称之为脏读。

读已提交:别人改数据的事务已经提交,我在我的事务中才能读到。在上述例子中,如果扣减25的事务未完成,那么读到的都是结果25。假如在后面的事务中,多次读取余额,那么就有可能读到25,可能读到0,我们称之为不可重复读。

可重复读:别人改数据的事务已经提交,我在我的事务中也不去读。这种在第一次读数据的时候,实际上就已经形成对应的视图,后面只能读到对应的数据。

串行:我的事务尚未提交,别人就别想改数据。这个是严格串行化,在上述例子中,只有前面的扣除25元完成后,才能开始后面的事务。

MySQL中的事务分析是怎样的 

这4种隔离级别,并行性能依次降低,安全性依次提高。

关于MySQL中的事务分析是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯