CoreData 属性的 Indexed Property 有什么作用?
我有一个具有 32 位哈希值的核心数据模型。我需要快速查找特定的哈希值。我应该使用索引属性吗?我不知道它的作用和 文档 没有帮助(我是不是找错地方了?)
那么索引到底是做什么的呢?
I have a Core data model with a 32bit hash value. I need to look up specific hash values quickly. Should I use the indexed property? I have no idea what it does and the documentation is no help (am I looking in the wrong place?)
So what does indexed do exactly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议在索引上阅读此内容: http://en.wikipedia.org/wiki/Index_ (数据库)。
简而言之,数据库引擎创建一个新结构,使索引列(对应于属性)保持排序,并链接到每个条目(主键)的相应行。这允许更快的搜索(因为有序列表中的搜索比无序列表中的搜索更快)。但这会增加使用的存储空间(用于数据结构)和插入时间(以保持结构排序)。
所以是的,在这种情况下你应该使用索引。
I would recommend to read this on indexes: http://en.wikipedia.org/wiki/Index_(database).
Simply put, a database engine creates a new structure which keeps the indexed column (which corresponds to a property) sorted and a link to the corresponding row for each entry (primary key). This allows for faster searches (since search in ordered lists is faster than in unordered lists). But this increases used storage (for the data structure), and insertion times (to keep the structure sorted).
So yes, you should use indexes in such cases.
如果选中此框,Core Data 将构建值的索引,这将使搜索更快、更高效。这就像 Spotlight 使用的一样。如果没有索引,每次都必须遍历数据库。您说您需要快速查找这些值,那么您应该为它们建立索引。
If you check the box, Core Data will build an index of the values, which will make searching faster and more efficient. It's like what Spotlight uses. Without the index it'll have to travel through the database every time. You say you need to look up the values quickly—then you should index them.