我有一个经常执行许多操作的系统,并且正在考虑将数据库拆分一下以分散负载并希望加快系统速度。
令人担心的是,通过拆分这些数据库,事务可能会变得不同步。
我的问题是,如果我拆分我的数据库。我还能同时在 3 到 6 个数据库上执行事务吗?意思是,如果有某种错误,同时将它们全部回滚?
编辑:我正在考虑拆分数据库,因为某些区域会被频繁调用但彼此无关。
编辑2:数据库是指一台单独的机器。我现在看到的实例可能是我应该使用的词。
我有一个经常执行许多操作的系统,并且正在考虑将数据库拆分一下以分散负载并希望加快系统速度。
令人担心的是,通过拆分这些数据库,事务可能会变得不同步。
我的问题是,如果我拆分我的数据库。我还能同时在 3 到 6 个数据库上执行事务吗?意思是,如果有某种错误,同时将它们全部回滚?
编辑:我正在考虑拆分数据库,因为某些区域会被频繁调用但彼此无关。
编辑2:数据库是指一台单独的机器。我现在看到的实例可能是我应该使用的词。
如果您指的是 MySQL 的一个实例(显然是在单个服务器上),那么拆分为多个
CREATE DATABASE ...
对性能和事务没有影响(有利或不利),对查询语法的影响很小。如果您的意思是“分片”,其中不同的服务器保存数据的不同部分——例如“用户”的子集,那么事务将不起作用。
相反,研究“XA”作为跨多个实例进行事务的方法。
如果您需要
SELECT
从多个分片中的每一个中获取行,请参阅 MariaDB 的蜘蛛引擎。或者您可以手动创建多个连接,从每个服务器收集数据,然后将信息合并在一起。(这不是技术“ACID”意义上的“交易”。)