2017-03-01 140 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