深入分析事物以及什么是分布式事物?

时间秒杀一切 提交于 2020-02-11 22:50:06

什么是事物?

在这里插入图片描述
事物是关系型数据库中,由一组sql组成的执行单元,该单元要么整体成功,要么整体失败。

事物的ACID特性

事物ACID特性,原子性,一致性,隔离性,持久性,这4个属性统称为ACID特性。
在这里插入图片描述
原子性:指事物包含的所有操作sql,要么整体成功,要么整体失败。
在这里插入图片描述
一致性:事物前的状态结果和事物后的状态的结果都是一致的。参考银行转账。
在这里插入图片描述
持久性:指一个事物一旦被提交了,那么数据就永久存储在磁盘中,即使系统故障了,数据也不会丢失。
在这里插入图片描述
如果事物没有进行隔离会出现三种严重的问题:脏读,不可重复读,幻读。

什么是脏读?
指一个事物处理的过程中读取了另一个未提交(回滚)的事物的数据。
什么是不可以重复读?
指多次查询却返回了不同的数值,这是由于查询间隔原因,被另一个事物修改并提交了。
什么是幻读?
指当事物A在读取某个范围内的记录时,B事物又在该范围内插入了新的记录,当A事物再次读取该范围内的记录时,就产生了幻读。

什么是分布式事物?

分布式事物,是指一个业务需要同时操作多个数据库的情况下,而且必须保持ACID的特性。一般应用于微服务的多服务处理。
在这里插入图片描述
在电商系统中,支付订单,就是一个分布式事物了
第一步:支付服务,修改支付订单状态。
第二步:订单服务,订单状态修改为已支付
第三步:库存服务,减库存
第四步:积分服务,为该用户送积分
以上4个步骤,在分布式系统中,是一个整体,也就是一个分布式事物。
该事物必须保证2点:
保证ACID特性
保证性能问题

感谢您的观看!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!