我遇到了一个小问题。故事如下:
我有一个文档存档系统(用 PHP 编写),它在多个客户端(目前 23 个)上运行。在他们的系统上,他们只有他们的文件。每天晚上,它们都需要“同步”到现场的主数据库(中央服务器)。我可以从中央服务器访问每个 MySQL 数据库,因此连接到它们没有问题。
我有一个连接到客户端数据库的脚本,从同步列 = '0000-00-00 00:00:00' 的表中选择所有条目(默认指示它未同步)。然后,我将遍历每条记录,将其插入中央服务器,并将客户端数据库记录上的同步时间设置为脚本执行的时间。这行得通,但显然多个查询的开销很大,我现在才注意到这些问题。
每个客户每天最多可以生成 2000 - 3000 个奇怪的文档。有了这些大数字,它花费的时间太长了(1sec / 2documents)。
我的问题有更好的解决方案吗?最好是 PHP 脚本解决方案,因为我需要记录日志以检查一切是否成功。
谢谢
编辑: 我目前的流程是:
- 选择所有未同步的数据
- 开始交易
- 将记录插入中央数据库服务器
- 从客户端选择文档记录
- 将文档插入中央数据库服务器
- 更新客户端上的同步列
- 更新服务器上的同步列
- 提交事务
这是在中央服务器上运行的脚本。现在我想起来了,我可以删除第 7 步并将其作为第 5 步的一部分,但这不会大大减少处理时间。