0

我的数据库中有一个表,我需要根据外键属性对其进行分区。因此,分区表的数量与外键存在的不同值的数量相同。

编辑:我设置了复制,其中主服务器中的一个表被复制到四个从服务器中。从属服务器不需要复制主服务器中的整个表,而只需要复制它的一个分区,如图所示。怎样才能做到这一点?

图片:复制分区

4

1 回答 1

0

根据需要去什么设备,将您的数据拆分为单独的表或单独的数据库。然后有3层:

主 -> 继电器 -> 设备

每个继电器既是从属设备(主设备),又是一个(或多个)设备的主设备。在中继中,声明了您不想进入设备的表ENGINE=BLACKHOLE。中继中的其他表正常声明。

中继可以与主服务器在同一台服务器上,但您需要单独的 mysqld 实例,每个实例都有一个单独的端口(3306 除外)。开销会相当小,特别是因为中继除了传递数据子集之外什么都不做。

编辑(基于图像)

要限制从站中的空间,请在从站上使用“replicate_do/ignore”命令。这不会减少主设备或从设备的带宽。然后,replicate_* 设置将丢弃大部分复制的数据。

如果您需要限制从属设备的带宽,请引入上述中继和黑洞。

于 2016-06-09T01:06:12.710 回答