首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自远程DB的mysql增量复制

来自远程DB的mysql增量复制
EN

Stack Overflow用户
提问于 2013-05-22 13:17:11
回答 2查看 1.8K关注 0票数 1

我们正在开发一个使用mysql和php的web应用程序。在我们的应用程序中,我们需要根据用户界面上的触发器,将本地mysql数据库与远程mysql数据库(运行在不同的主机上)同步。

用户触发器以网页的形式出现,当用户单击按钮时,将触发php服务器脚本,该脚本将在后台执行这种同步。

我们计划通过打开带有远程和本地db的db连接并插入行,一次插入一行,以一种简单的方式完成这一任务。但是远程DB表的大小可能很高(多达几百万个条目),因此我们需要一个更有效的解决方案。

有人能帮助我们使用sql query / php代码吗?它可以高效地完成这个db同步,而不会给远程DB带来太多负担。

提前感谢

夏安

UPDATE远程DB不在我的控制范围内,所以我不能将它配置为主数据库,也不能对其执行任何其他设置。这是我的一个主要限制。这就是为什么我想使用php编程来完成它的原因。另一个选项是从远程DB读取1000行块并插入到本地DB中。但我想知道是否有更好的方法?

EN

回答 2

Stack Overflow用户

发布于 2013-05-22 13:22:45

当数据层具有内置的功能时,您不应该关注来自应用程序层的MySQL复制。请阅读“使用MySQL进行主/从复制”。https://www.digitalocean.com/community/articles/how-to-set-up-master-slave-replication-in-mysql是一个起点。

票数 2
EN

Stack Overflow用户

发布于 2013-05-22 13:29:15

就主服务器而言,复制的成本是最低的。它基本上是这样工作的:

  1. 主日志将所有(相关)活动记录到一个平面日志文件中。
  2. 从服务器不时下载此日志,并在本地重放二进制日志。

因此,对Master的影响仅仅是将线性数据写入日志文件,再加上一点带宽。如果您仍然担心对主的影响,您可以(在系统级别)节流主和从之间的链接,或者在低活动时间(通过在适当的时候发出STOP/START SLAVE命令)打开链接。

我还应该提到,内置复制是在MySQL引擎内部的一个低级别上进行的。我不认为您可以通过外部流程获得更好的性能。如果您想在点击这个“同步”按钮时完全同步本地dtabase,那么不要再看下去了。

如果您可以使用部分同步,那么您可以让这个按钮在短时间内恢复复制(例如。START SLAVE为10次,STOP SLAVE再次自动执行;用户需要再次单击以获得更多数据)同步。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16692831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档