我有一个模特:
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,这是正常的吗?
答案 0 :(得分:2)
当您的应用运行时,Realm可能需要存储旧版本的数据以及最新版本。例如,如果侧线程上有Realm
个实例指向旧版本的数据并且未刷新,则Realm需要存储这些旧版本和当前版本,并且文件大小将会增长。 / p>
根据您构建写入事务的方式来添加这700万个条目,您的代码可能会同时保留多个版本的数据,这会强制Realm文件变大。我们已经看到这种情况经常发生,特别是对于使用多个工作线程同时写入数据库的用户。您可能希望确保您的代码不会同时打开多个版本的Realm,并且一旦Realm
实例不再有用,它就会被及时销毁。 (您可能需要将其包装在自动释放池中以实现此目的。)
一旦旧版本的数据停止被引用,Realm就知道该空间可以被回收并将来重用它。您也可以通过向其写入副本来手动压缩文件,然后用副本替换原始文件。
您可以详细了解Realm文件有时会变得比in our documentation更大的原因。