gpt4 book ai didi

用于两个相同数据库的 Python + MySQLDB 批量插入/更新命令

转载 作者:行者123 更新时间:2023-11-30 23:40:31 26 4
gpt4 key购买 nike

我正在使用两个数据库,一个是本地版本,另一个是服务器上的版本。服务器是最新版本,而不是将所有表上的所有值从服务器重新复制到我的本地版本,

我想输入每个表,只插入/更新已更改的值,从服务器,并将这些值复制到我的本地版本。

有没有一些简单的方法来处理这种情况?某种批量插入/更新?谷歌搜索的答案不起作用,我已经尝试编写一个答案,但我开始在错误处理中陷入困境..
我正在使用 Python 和 MySQLDB...感谢您的任何见解
史蒂夫

最佳答案

如果您所有表的记录都有时间戳,您可以识别“服务器中已更改的值”——否则,不清楚您打算如何执行该部分(这与插入或更新无关,就是一个“选对”的问题)。

一旦您拥有了所有重要的值,somecursor.executemany 将允许您将它们作为一个批处理应用。根据您的索引,将它们放入非索引辅助临时表可能会更快,然后将所有该表插入/更新到真实表中(在删除辅助/临时表之前),后者当然是单个 somecursor.execute

您可以通过使用一个(或几个)线程执行选择并将结果放入 Queue.Queue 和一些工作线程来减少整个作业的挂钟时间将从队列中提取的结果应用到内部/本地服务器中。 (读取线程与写入线程的最佳平衡最好通过尝试一些并进行测量来获得——写入本身比读取慢,但是您到本地服务器的带宽可能比另一个服务器高,因此很难预测)。

但是,所有这些都没有实际意义,除非您确实有一个策略来识别“服务器中已更改的值”,因此就细节进行更多讨论不一定非常有用”下游”从该标识。

关于用于两个相同数据库的 Python + MySQLDB 批量插入/更新命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3526629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com