通过分片,如何在多个数据库服务器之间维护可靠的事务?
例如,如果我在一个数据库服务器(MySQL实例)上有一个名为AccountLedger的表,而在另一个数据库服务器上有一个名为User的表,是否可以跨两个数据库实例运行一个事务,该事务既可以提交,也可以在失败时回滚?
示例交易:
AccountLedger数据库服务器:
START TRANSACTION;
INSERT INTO AccountLedger SET
UserID = @UserID,Date = @Date,Debit = @Debit,Balance = @Balance;
START TRANSACTION;
UPDATE User SET
Balance = @Balance
WHERE UserID = @UserID;
AccountLedger数据库服务器:
COMMIT;
COMMIT; -- What happens if the COMMIT fails here (power goes out or whatever)
我已经阅读了很多关于分片的内容,但我似乎无法找到有关使用分片的事务的任何信息.有人能指出我正确的方向吗?
最佳答案