mysql - 将表从主 MySQL 服务器动态分区到远程 MySQL 服务器

标签 mysql partitioning database-partitioning distributed-database

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

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

Image: Replicating partitions

最佳答案

根据需要将哪些数据发送到哪些设备,将数据拆分为单独的表或单独的数据库。然后有 3 层:

主站 -> 继电器 -> 设备

每个中继既是一个(或多个)设备的从站(主站)又是主站。在中继中,您想要访问设备的表被声明为ENGINE=BLACKHOLE。 Relay中的其他表均正常声明。

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

编辑(基于图像)

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

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

关于mysql - 将表从主 MySQL 服务器动态分区到远程 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35824924/

相关文章:

php - 如何防止 PHP 中的 SQL 注入(inject)?

oracle - 在同一个硬盘上对 Oracle 进行分区有什么好处吗?

postgresql - 参数化、准备好的查询的 Postgres 约束排除

algorithm - 均匀划分连续的数字序列

azure - 如何使用 Azure SQL 实现跨多个区域的数据跨度(而非复制)

mysql - 如何检查数据库表中是否存在某个元素?

mysql - 当字段真正的转义字段包含\n 和\"时加载数据 INFILE

php - 关联数组中最常见的值

mysql - 使用mysql分区表删除优化(MySQL 5.1)

MySQL 连接表,分区选择所有分区