领域数据库大小

时间:2017-03-01 05:41:27

标签: ios swift realm

我有一个模特:

class PhoneExtModel: Object {
    dynamic var number: Int64 = 0 // setup Adding 81 before string
    dynamic var label = ""
    dynamic var isBlocked = false
    dynamic var groupId = 0

其中'数字'是主键。

当我添加到realm base 7 000 000条目时,基本文件的大小是800 - 900 mb,这是正常的吗?

1 个答案:

答案 0 :(得分:2)

当您的应用运行时,Realm可能需要存储旧版本的数据以及最新版本。例如,如果侧线程上有Realm个实例指向旧版本的数据并且未刷新,则Realm需要存储这些旧版本和当前版本,并且文件大小将会增长。 / p>

根据您构建写入事务的方式来添加这700万个条目,您的代码可能会同时保留多个版本的数据,这会强制Realm文件变大。我们已经看到这种情况经常发生,特别是对于使用多个工作线程同时写入数据库的用户。您可能希望确保您的代码不会同时打开多个版本的Realm,并且一旦Realm实例不再有用,它就会被及时销毁。 (您可能需要将其包装在自动释放池中以实现此目的。)

一旦旧版本的数据停止被引用,Realm就知道该空间可以被回收并将来重用它。您也可以通过向其写入副本来手动压缩文件,然后用副本替换原始文件。

您可以详细了解Realm文件有时会变得比in our documentation更大的原因。