核心数据文件大小
Posted
技术标签:
【中文标题】核心数据文件大小【英文标题】:Core data file size 【发布时间】:2010-09-09 10:42:38 【问题描述】:我正在考虑将大量数字存储为 Int16。考虑 Core 数据,因为其余模型是在 Core 数据中实现的。
所以我做了一个简单的应用程序。具有 1 个实体和 1 个 Int16
类型属性的核心数据。在 SQLite 存储类型中插入 100 万个条目,文件大小为 16.2MB。实际上,如果我更改为Int64
,我会得到相同的文件大小。如果编写简单的二进制 C 数组,应该在 2MB 左右。
所以问题是,如果无论如何都要将所有内容都转换为 NSNumber,为什么 Core 数据还要使用这么多不同类型的数字格式?有什么方法可以让 Core data 将数据存储为真实的Int16
?还是 C 语言中的 short
?
谢谢。
【问题讨论】:
请记住,Core Data 存储的不仅仅是原始数字。它需要维护它们周围的其余数据库结构。 【参考方案1】:Core Data 支持所有这些数字格式并不意味着底层存储引擎必须以不同的方式存储它们。如果您尝试使用二进制存储,您可能会得到不同的文件大小。
为了存储这么多整数,我会将它们全部放在 NSData
对象中并将其存储在 Core Data 中。
【讨论】:
这是个好主意!现在数据文件只有2.1MB。仅 100KB 开销,为方便起见非常值得。以上是关于核心数据文件大小的主要内容,如果未能解决你的问题,请参考以下文章