深入分析事物以及什么是分布式事物?
什么是事物?
事物是关系型数据库中,由一组sql组成的执行单元,该单元要么整体成功,要么整体失败。
事物的ACID特性
事物ACID特性,原子性,一致性,隔离性,持久性,这4个属性统称为ACID特性。
原子性:指事物包含的所有操作sql,要么整体成功,要么整体失败。
一致性:事物前的状态结果和事物后的状态的结果都是一致的。参考银行转账。
持久性:指一个事物一旦被提交了,那么数据就永久存储在磁盘中,即使系统故障了,数据也不会丢失。
如果事物没有进行隔离会出现三种严重的问题:脏读,不可重复读,幻读。
什么是脏读?
指一个事物处理的过程中读取了另一个未提交(回滚)的事物的数据。
什么是不可以重复读?
指多次查询却返回了不同的数值,这是由于查询间隔原因,被另一个事物修改并提交了。
什么是幻读?
指当事物A在读取某个范围内的记录时,B事物又在该范围内插入了新的记录,当A事物再次读取该范围内的记录时,就产生了幻读。
什么是分布式事物?
分布式事物,是指一个业务需要同时操作多个数据库的情况下,而且必须保持ACID的特性。一般应用于微服务的多服务处理。
在电商系统中,支付订单,就是一个分布式事物了
第一步:支付服务,修改支付订单状态。
第二步:订单服务,订单状态修改为已支付
第三步:库存服务,减库存
第四步:积分服务,为该用户送积分
以上4个步骤,在分布式系统中,是一个整体,也就是一个分布式事物。
该事物必须保证2点:
保证ACID特性
保证性能问题
感谢您的观看!