mysql跨库事务XA操作示例
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,本文实例讲述了mysql跨库事务XA操作。分享给大家供大家参考,具体如下:前一段时间在工作中遇到了跨库事务问题,后来在网上查询了一下,现在做一下整理和总结。1、首先要确保mysql开启XA事务支持SH
千家信息网最后更新 2024年11月26日mysql跨库事务XA操作示例
本文实例讲述了mysql跨库事务XA操作。分享给大家供大家参考,具体如下:
前一段时间在工作中遇到了跨库事务问题,后来在网上查询了一下,现在做一下整理和总结。
1、首先要确保mysql开启XA事务支持
SHOW VARIABLES LIKE '%XA%'
如果innodb_support_xa的值是ON就说明mysql已经开启对XA事务的支持了。
如果不是就执行:
SET innodb_support_xa = ON
query("XA START '$xid'");//准备事务1$dbtest2->query("XA START '$xid'");//准备事务2try { //$dbtest1 $return = $dbtest1->query("UPDATE member SET name='唐大麦' WHERE id=1") ; if($return == false) { throw new Exception("库dbtest1@172.20.101.17执行update member操作失败!"); } //$dbtest2 $return = $dbtest2->query("UPDATE memberpoints SET point=point+10 WHERE memberid=1") ; if($return == false) { throw new Exception("库dbtest1@172.20.101.18执行update memberpoints操作失败!"); } //阶段1:$dbtest1提交准备就绪 $dbtest1->query("XA END '$xid'"); $dbtest1->query("XA PREPARE '$xid'"); //阶段1:$dbtest2提交准备就绪 $dbtest2->query("XA END '$xid'"); $dbtest2->query("XA PREPARE '$xid'"); //阶段2:提交两个库 $dbtest1->query("XA COMMIT '$xid'"); $dbtest2->query("XA COMMIT '$xid'");}catch (Exception $e) { //阶段2:回滚 $dbtest1->query("XA ROLLBACK '$xid'"); $dbtest2->query("XA ROLLBACK '$xid'"); die($e->getMessage());}$dbtest1->close();$dbtest2->close();?>
XA的性能很低。一个数据库的事务和多个数据库间的XA事务性能对比可发现,性能差10倍左右
更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL事务操作技巧汇总》、《MySQL查询技巧大全》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》
希望本文所述对大家MySQL数据库计有所帮助。
事务
技巧
数据
数据库
阶段
准备
性能
大全
支持
查询
专题
两个
兴趣
内容
函数
多个
大麦
实例
常用
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
原生php 的数据库在哪里
idea添加数据到数据库
连接数据库错误10038
时空网络安全手抄报
北京昌平软件开发学校
连接数据库有哪些
飞腾服务器配置参数
c什么是数据库框架
我可以为网络安全做些什么
数据库系统调用是什么意思
教资网络安全面试
关系数据库管理系统的典型代表
有关数据库的试题
文件管理服务器停止运行
互联网科技融资排名
互联网电商科技标题
ALPHABET翻译软件开发
登陆游戏提示连接不到主服务器
dell670服务器电源改可调
控制台数据库删除
对峙2服务器切换
网络安全内控体系
串口服务器网页怎么做
万网邮箱服务器
软件开发服务需要哪些资质
我的世界中加入服务器要钱吗
软件开发培训哪里好一些
下一步加强网络安全工作
8000服务器超时
10万册电子书数据库