使用java将数据从mysql数据库复制到其他mysql数据库
Posted
技术标签:
【中文标题】使用java将数据从mysql数据库复制到其他mysql数据库【英文标题】:copy data from a mysql database to other mysql database with java 【发布时间】:2012-09-15 10:50:09 【问题描述】:我开发了一个小型摇摆桌面应用程序。这个应用程序需要来自其他数据库的数据,因此我使用 java 创建了一个小进程,允许从远程 db 获取信息(使用 jdbc)并将其复制(使用 jpa)到本地数据库,问题是这个过程需要很多时间。有没有其他方法可以加快这项任务?
如果我不清楚,请告诉我,我不是母语人士。
谢谢
迭戈
【问题讨论】:
您好 Diego,这个问题很广泛,请尝试为我们提供更多信息。你能回答这个问题吗:远程数据库有多大,以 MB 为单位的大小,表的数量,完成导入需要多少时间(秒)以及可接受的时间是多少,远程和远程之间的连接速度有多快?本地主机??? 您是否也可以控制远程数据库,如果可以,它们是否都在安全网络中。速度问题主要是将数据吸入您的客户端,然后将其推送到您的本地服务器。要加快速度,您无能为力。 谢谢您的回答。我没有执行此类任务的经验。 阅读this answer。这是一个类似的场景,但源数据库是 Oracle。此外,您可以重用另一个工具来处理这项工作,例如 keetle。 【参考方案1】:JPA 不太适合这里,因为对象关系映射成本很高,而且这是批量数据传输。在这里您可能也不需要数据库复制。
也许backup 是一个解决方案:那里列出了几种不同的方法。
一般来说,也可以在 cron 任务上执行 mysqldump(例如在表上)压缩转储并检索它。
【讨论】:
【参考方案2】:一个不错的选择是使用 MySQL 中的复制功能。更多信息请参考 MySQL 手册here。
【讨论】:
感谢您的帮助。我没有使用复制,因为表没有相同的结构,本地表至少还有 4 列。 那么,我认为您应该尝试另一个选项,即“联邦存储引擎”。它是一种存储引擎,可以访问远程数据库表中的数据,而不是本地表中的数据。请看这里[dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html]以上是关于使用java将数据从mysql数据库复制到其他mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章