OS X App。哪种方式是存储数据的最佳方式?

时间:2015-10-06 10:06:04

标签: database cocoa core-data realm

在os x app中,这是存储数百条用户记录的最佳方式,每条记录包含大量信息?

我知道我可以使用CoreData,SQLite,Realm,plist或其他解决方案。 哪个是最兼容的(我认为例如用于网络使用)和干净/轻/快的方法/数据库类型来存储数据?

感谢

2 个答案:

答案 0 :(得分:12)

Core Data由Apple编写,用于基于Cocoa的应用程序。它已经包含在操作系统中,已经有10年的发展历史,已经在应用程序商店中的数十万个应用程序中使用。

使用第三方库存在巨大的风险。

我总是建议在iOS和OS X上使用Core Data,因为它是由Apple编写的,有一个完全支持的开发团队,并且是一个成熟的代码库。

使用原始SQLite是可能的,但是您将无法获得与Core Data相同的性能优势。

Realm专注于错误的事情。他们的数据迁移系统很可怕,当他们需要关注整体情况时,他们会关注原始速度。他们可能会定位移动广告,但我不同意他们的目标。

对于任何数据库系统来说,数百条记录并不难。当你在一台设备上获得数以万计的记录时,由于内存压力,许多记录开始下降(即使在OS X上)。

核心数据旨在帮助解决内存压力。我不知道任何第三方框架会这样做。

答案 1 :(得分:5)

我认为最重要的是将Realm与其他数据库进行比较。 Realm使用其自己的核心,其他基于 SQLite (CoreData使用SQLite)。 Realm是第一个专为移动使用而设计的数据库。因此,对于您的案例( OSX ),您必须考虑您的应用是否具有与移动应用相同的功能:设备限制。

境界:

  • 非常快的方法:参见示例here
  • 快速执行:参见基准here,是数千个用户记录!
  • Light:嵌入式数据库小于1MB

  • 但处于测试状态。这意味着他们不断发展

SQLite:

名称中的“lite”意味着它是一个轻型数据库。您可以在github中使用许多库来帮助您,完整的文档和完整的示例。

Personnaly,我使​​用Realm for My OSX App,尽管它处于beta状态,但我拥有我需要的所有功能。 Realm比CoreData更快,节省了数千行代码和数月的工作量。 :)

我希望这会对你有所帮助。