【无标题】

本地事务?

什么是本地事务

就是所有的sql都发生在 同一个mysql实例 里的 同一个库里的sql操作,这就叫本地事务

本地事务实现原理?

本地事务的实现是利于mysql的redelog和undolog日志和mvcc和锁等结合实现事务的回滚和防止事务的并发的.

怎么开启本地事务?

方法一:用@Transactional注解

方法二:直接手写开启事务代码
 

什么是分布式事务?

除了本地事务,其他的都是分布式事务

分布式事务怎么实现?

第一种是:mysql官方提供了 分布式事务解决方案,    XA(跨数据库事务)(https://dev.mysql.com/doc/refman/5.7/en/xa.html)

XA分为外部和内部,两者结合发挥作用.

外部XA用于跨多MySQL实例的分布式事务,需要应用层作为协调者

内部XA事务用于同一实例下跨库事务,由Binlog作为协调者

第二种是:阿里的seate分布式事务管理工具

怎么判断这两个操作在同一个事务中?

如果是本地事务的话, 所有的sql要在一个线程中,要在一个数据库connection连接中,操作的是同一个mysql实例 里的 同一个库里.

如果是分布式事务的话,

你可能感兴趣的:(事务,数据库)