领域:如何导入5百万个对象而不会崩溃

时间:2017-06-22 16:35:06

标签: android insert realm large-files

我必须将500万元组的sqlite数据库迁移到领域。该数据库仅供咨询。我开始将5M元组从sqlite转换为json并使用createAllFromJson()导入数据。这花了太长时间,所以我决定使用FlatBuffer而不是json并手动导入。问题是在几次导入迭代后,它返回以下异常:io.realm.exceptions.RealmError:不可恢复的错误。 Mmap()失败:内存不足。 我了解到关闭领域对于这类问题非常重要。所以每次迭代时我都会建立并关闭一个领域,但我仍然会遇到这个问题。 做一些研究,我了解到领域传递的文件非常糟糕。我假设我必须将文件分成几个查询它们。 我的问题是: 如何将大型域文件分成不同的小文件,查询它们并保持极快的响应? 分裂正确的方法吗?

我只有1个RealmModel:

$ reprepro -b repo/ includedeb yakkety python3_3.5.1-4_amd64.deb 
Skipping inclusion of 'python3' '3.5.1-4' in 'yakkety|main|amd64', as 
it has already '3.5.1-4'.

我这样插入:

public class Owner extends RealmObject {
    @PrimaryKey
    private long id;
    @Index
    private String name;
    @Index
    private String mix;
    @Index
    private String entry;
    @Index
    private String value;

    // ... Generated getters and setters ...
}

0 个答案:

没有答案