用于Mongo DB的Morphia和低性能代码

时间:2015-07-14 09:34:41

标签: java mongodb morphia

我正在使用Morphia以这种方式将Mongo数据库集合从数据库复制到另一个数据库:

List<User> users = datastoreSource.find(User.class).asList();
datastoreDest.save(users);

此代码有效,但执行时间需要数小时。我有一个包含300万个文档的集合,我希望在几分钟内复制它。有人可以帮助我改进代码吗?

1 个答案:

答案 0 :(得分:1)

令我惊讶的是,这项工作共有300万份文件。首先,你将它们全部加载到内存中,然后你将它们写回来。

我会尝试使用.order("_id").limit(100).skip(i*100)bulk write it back阅读一批数据(比如100)。

这会很有趣:

  • 实际上有多少数据?
  • 你有多少记忆?你开始交换吗?
  • &#34;小时&#34;?在两个或十个区域?