2017-03-01 81 views
1

我有一个模型:境界数据库大小

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

其中“编号”是主键。

当我添加到领域基地7 000 000条目,基础文件的大小是800 - 900 MB,这是正常的吗?

回答

1

在您的应用程序运行时,除最新版本外,Realm可能还需要存储旧版本的数据。例如,如果您的侧线程上有Realm实例指向旧版本的数据并且未刷新,则Realm需要同时存储这些旧版本和当前版本,并且文件大小将会增加。

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

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

你可以阅读更多关于为什么领域文件有时会变得比他们应该更大的in our documentation