OS X 应用程序。哪种是存储数据的最佳方式?

OS X App. Which is the best way to store data?

在 os x 应用程序中,存储数百条用户记录且每条记录包含大量信息的最佳方式是什么?

我知道我可以使用 CoreData、SQLite、Realm、plist 或其他解决方案。 哪个是 most 兼容(我认为例如用于网络使用)和 clean/light/fast method/type 数据库存储数据?

感谢

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

境界:

  • 非常快速的方法:参见示例 here
  • 快速执行:查看基准测试 here,是的,有数千条用户记录!
  • Light:内嵌数据库小于1MB

  • 但处于测试阶段。这意味着他们在不断发展

SQLite:

名称中的 "lite" 表示它是一个轻型数据库。 github 中有许多库可以帮助您,完整的文档和完整的示例。

就个人而言,我将 Realm 用于我的 OSX 应用程序,尽管它处于测试阶段,但我拥有我需要的所有功能。 Realm 比 CoreData 更快,为我节省了数千行代码和数月的工作时间。 :)

希望对您有所帮助。

核心数据由 Apple 编写,用于基于 Cocoa 的应用程序。它已经包含在操作系统中,经过 10 年的发展,并且已经在应用商店中的数十万个应用程序中使用。

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

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

可以使用原始 SQLite,但您不会获得与使用 Core Data 相同的性能优势。

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

数百条记录对于任何数据库系统来说都不是什么难事。当您在设备上获得数以千计的记录时,其中许多记录由于内存压力而开始下降(即使在 OS X 上)。

Core Data 旨在帮助缓解内存压力。我不知道有任何第三方框架会这样做。