MySQL 分布式事务的使用

Posted 偶尔发呆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 分布式事务的使用相关的知识,希望对你有一定的参考价值。

假定在mysql实例1上有表

create table person(
    id int, 
    name varchar(32)
)

MySQL实例2上也有一张同样的表,现在从实例1中的 person 表中删除一条数据,并把这条数据插入到实例2的表中,这两个操作在同一个事务中,因为跨越了数据库实例,涉及到了分布式事务。

MySQL实现了分布式事务,查看数据库是否启用了 XA 事务:

show variables like ‘innodb_support_xa’;

MySQL 关于xa的命令:

xa start a’;
sql 语句;
xa end a;
xa prepare a;
xa commit a;

以上命令是分布式事务的操作方法,在一个命令行中输入上述命令,并不是真实的分布式事务。可以使用 JTA 来控制MySQL 的xa。

例子稍后补上:

 

以上是关于MySQL 分布式事务的使用的主要内容,如果未能解决你的问题,请参考以下文章

Mysql—Mysql日志的两阶段提交分布式事务以及多事务组提交

Mysql分布式事务

MariaDB与MySQL对比 --- 对分布式事务的支持

腾讯云TDSQL MySQL版 - 开发指南 分布式事务

一文详解-MySQL 事务和锁

MySQL复习——项目基础使用——事务主从复制分库分表分布式ID雪花算法