需要最佳解决方案将数据插入远程数据库

时间:2013-05-02 13:31:58

标签: php mysql curl mysqli

我正在使用我的sql数据库开发php应用程序,应用程序和数据库都托管在相同的服务器(在客户端服务器上)

我们希望跟踪该数据库的某些表格,为此我们在不同的服务器(供应商服务器)上创建了相同的表格。

将行插入客户端数据库表后,将这些行插入远程端表的最佳方法是什么?

注意:要插入的行一次可能是50000或50.

我面前的选项:

1)要使用两个连接,并在两个数据库中都插入行,但这需要时间,因为我必须大量插入行。

2)使用curl请求到远程数据库并在本地数据库中插入行后插入数据

4 个答案:

答案 0 :(得分:4)

使用内置主/从设置的mysql来保持数据库彼此同步

http://dev.mysql.com/doc/refman/5.0/en/replication.html

答案 1 :(得分:2)

为什么不使用主/从复制,让数据库本身担心保持同步。这将比手动卷系统更加强大。

http://dev.mysql.com/doc/refman/5.0/en/replication.html

答案 2 :(得分:1)

使用复制听起来像其他福克斯评论的理想解决方案。但如果遗憾的是不允许这样做,那么这取决于要求。

如果客户端应用程序可以等待很长时间,直到成功插入50000或50行数据(我想如果行是50000则需要几秒钟),那么前面的两个选项仍然有效。

但是,如果您需要尽快将http响应发送回客户端应用程序,那么可能有更好的解决方案。例如

  • 使用crond或您想要的任何进程/守护进程准备一些异步工作进程
  • 客户端应用程序创建的每个http请求都将通过memcache,syslog或消息队列存储/排队记录,甚至使用文件(仅当磁盘I / O不是问题时)
  • 让异步工作者获取/出列数据,让他插入50000或50个数据发送

答案 3 :(得分:0)

您可以将服务器设置为客户端服务器(可能是主服务器)的Slave服务器,从而复制客户端服务器上的数据。

您也可以选择仅复制特定表或特定数据库。

设置非常简单,听起来就像你需要的那样。

http://dev.mysql.com/doc/refman/5.0/en/replication.html