基于记录的MySQL条件复制

基于记录的MySQL条件复制,mysql,mysqli,mysql-management,Mysql,Mysqli,Mysql Management,我们的组织有一个非常大的数据库,可以复制到单独的全球服务器 在我们的数据库中,一些表包含特定区域专有的数据,从而为这些区域内的用户提供专有信息的权限 范例 澳大利亚, 迪拜的交易 与区域表相反,我们有全球表,其中包含来自世界所有区域的信息 范例 人、地址、联系人 我们面临的问题是,当向用户授予此信息的权限时,我们会带来我们正在努力克服的安全风险 首席程序员建议我们通过查询复制驻留在全局表中的数据,这些查询只能将特定区域的数据提取到单独的数据库中,并在每次需要运行报告或提取数据时执行这种复制

我们的组织有一个非常大的数据库,可以复制到单独的全球服务器

在我们的数据库中,一些表包含特定区域专有的数据,从而为这些区域内的用户提供专有信息的权限

范例

澳大利亚, 迪拜的交易

与区域表相反,我们有全球表,其中包含来自世界所有区域的信息

范例

人、地址、联系人

我们面临的问题是,当向用户授予此信息的权限时,我们会带来我们正在努力克服的安全风险

首席程序员建议我们通过查询复制驻留在全局表中的数据,这些查询只能将特定区域的数据提取到单独的数据库中,并在每次需要运行报告或提取数据时执行这种复制

我并不完全同意这种方法,因为复制包含数十万条记录的11+个表的记录需要很长时间,而且数据完整性和同步问题也很危险

我正在寻找这种复制方法的替代方法

有没有办法设置到特定服务器的条件复制

比如说

如果更新了个人记录 此人属于澳大利亚地区 然后记录将在 主服务器和复制 只会在 对应的服务器

或者有其他选择吗


我已经简要介绍了如何使用视图,但我认为它们不会提供我们所关注的主要数据集的推断级别。

MySQL提供选择性复制,但最小的选择级别是表。这是因为,在大多数情况下,从纯数据库的角度来看,表几乎总是独立的。试图通过特定行限制复制将严重损害数据完整性,并成为数据库管理的噩梦:MySQL将需要更多关于表使用的信息,而不是设计用来处理的信息


在文档中关于复制的章节中,描述了控制选择性表或数据库复制的系统设置。

我们在复制中使用选择性表,但是我们仍然需要提供从全局表提取区域数据的附加层。这就是为什么首席程序员建议我们有一个脚本,可以从与某个区域相关的所有表中获取所有的记录。然而,这是如此繁重和耗时,以至于它不是一个可行的选择。是否可以重新构造全局表以使这样的脚本更容易使用?你能在它上面设置触发器来更新特定于区域的表吗?像您的首席程序员建议的那样复制数据的脚本不是一个糟糕的主意,但很容易实现。在通往其他可行解决方案的路上,不要害怕尝试一个疯狂的想法。