最佳实践:何时需要在社交移动iOS应用程序中清除移动数据库?

最佳实践:何时需要在社交移动iOS应用程序中清除移动数据库?,ios,objective-c,database,realm,Ios,Objective C,Database,Realm,例如,我们有一个类似facebook的iOS应用程序。其中有一个pullToRefresh和增量加载和使用域。 如果不从数据库中删除数据,它将无限增长。这将影响性能。 什么时候值得清洗?它应该彻底清洗吗?还是部分?最佳实践是什么? realm的最佳实践?很难推荐任何单一的最佳实践,因为所有这些都取决于您的应用程序、它管理的数据的大小以及什么样的用户体验 定期清除本地缓存数据库中非常旧的条目绝对是个好主意。但是删除大量数据也会影响性能,因此,过于激进地删除数据不是一个好主意。如果大型本地数据库意味

例如,我们有一个类似facebook的iOS应用程序。其中有一个pullToRefresh和增量加载和使用域。 如果不从数据库中删除数据,它将无限增长。这将影响性能。 什么时候值得清洗?它应该彻底清洗吗?还是部分?最佳实践是什么?
realm的最佳实践?

很难推荐任何单一的最佳实践,因为所有这些都取决于您的应用程序、它管理的数据的大小以及什么样的用户体验

定期清除本地缓存数据库中非常旧的条目绝对是个好主意。但是删除大量数据也会影响性能,因此,过于激进地删除数据不是一个好主意。如果大型本地数据库意味着它提供了更好的用户体验,那么它没有什么错。Realm的零拷贝机制意味着它非常高效,即使有很多内容

我建议你看看你的应用程序,计算出数据需要多长时间才能让用户完全不再关心它。根据应用程序下载的数据量,这可能是一天、一周或一个月。相反,您也可以设置大小公差,这样当数据库增长到您不喜欢的大小时,您就可以让应用程序开始缩小它


由于删除可能很耗时,我绝对建议您在后台线程中执行任何类型的清理。您可以轻松设置一个小型类,定期(可能每周一次)运行
NSOperation,查询数据库中最旧的数据,然后将其删除。

您可以使用
let oldData=realm.objects(Items.self).filter(…old_data_filter…)删除旧数据
realm.delete(oldData)