Yii2.0 操作事务多个数据库
我现在是这样的,项目有很多的数据库,都是在同一个mysql服务器下的,在main.php里面有db,db2,db3 现在是这样的有个入库操作,A表来自于db2,B表来自于db3,在使用事务的时候是这句:
$transaction = \Yii::$app->get('db2')->beginTransaction();
我不清楚到底写get('db2')还是get('db3')还是随便都可以??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
mysql应该不支持分布式事物。
mysql单纯的事务是不支持跨库的。真要做的话可以使用XA Transactions
1.确认是否开启XA事务支持
如上,innodb_support_xa为ON 表示已开启,否则需先开启
2.XA事务实现
代码实现参考如下文章,供参考,未测试
https://blog.csdn.net/soonfly...
实际上使用事务会大大的影响性能,如非业务足够特别,一定要使用分布式事务强烈不建议使用,甚至单库的事务也谨慎使用。
通过异步的手段保证事务的最终一致是比较合理的思路。