如何比较两个数据库之间的mysql表并有效地更新差异?

时间:2013-08-09 15:40:00

标签: php mysql

这是设置,我有多个在线商店,我想使用相同的产品数据库。目前它们都是独立的,因此更新任何东西都需要经过并复制产品,这是一个巨大的痛苦。我想做的是创建一个主产品数据库,每晚,每个站点将比较其数据库,并相应地进行更新。

这个想法是一个主要的产品数据库,每天会更新几次,然后在凌晨2点说,一个cron作业将运行拉动各个网站的更新。

关于数据库的更多细节,有一个表'产品'需要比较,但它还需要查看表'prodcuts_site_status'来确定每个给定站点的产品状态值,所以我不能简单地转储主表并将其重新放入站点数据库中。

创建一个php脚本逐行进行比较和更新很容易,但我希望在mysql中存在一个更优雅/更有效的解决方案。有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

总结一下,你可以尝试3种不同的方法:

  1. 使用SELECT ... INTO OUTFILE,然后使用MySQL Cross Server Select Query

  2. 中的LOAD DATA INFILE
  3. 使用此处所述的复制方法 Perl: How to copy/mirror remote MYSQL table(s) to another database? Possibly different structure too?

  4. 使用FEDERATED 存储引擎连接来自不同服务器的表http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html