Core Data 中的“索引”到底是啥?

Posted

技术标签:

【中文标题】Core Data 中的“索引”到底是啥?【英文标题】:What exactly is 'indexing' in Core Data?Core Data 中的“索引”到底是什么? 【发布时间】:2010-07-22 00:50:32 【问题描述】:

作为对我昨天提出的问题 (New Core Data entity identical to existing one: separate entity or other solution?) 的回答,有人建议我为属性编制索引。

在 Google 上大量搜索 SQLite/Core Data 中的“索引”是什么之后,恐怕我还没有更接近确切地知道它是什么或它如何根据属性加快获取速度。请记住,除了基于过去几个月对 Core Data 的阅读方式、方式、方式的模糊想法之外,我对 SQLite/数据库一无所知。

【问题讨论】:

【参考方案1】:

简单地说,索引是一种预排序。如果您有数字属性索引,则存储按数字顺序维护链表。如果您有一个文本属性,它会按字母顺序维护一个链表。根据算法,它还可以维护有关属性的其他类型的信息。它将数据存储在附加到持久存储文件的索引中。

它使基于索引属性的提取速度更快,同时权衡了更大的文件大小和稍慢的插入速度。

【讨论】:

【参考方案2】:

所有这些答案都很好,但过于专业。

索引与您在书后找到的索引几乎相同。因此,如果您想查找某个单词出现在哪个页面,您可以按字母顺序浏览它,从而快速找到该单词出现的所有页面。

如果您没有索引,那么用户将不得不逐字逐页浏览每个页面,这可能需要相当长的时间。因此,索引几乎只以这种方式创建一次,而不是每次用户想要搜索时。

【讨论】:

【参考方案3】:

Wikipedia对数据库索引有很好的解释:

“数据库索引是一种数据结构,它以降低写入速度和增加存储空间为代价提高对数据库表的数据检索操作的速度。”

【讨论】:

以上是关于Core Data 中的“索引”到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章

jquery函数中的索引是啥意思

lodop 打印插件,打印到不是我指定的打印机上去了,想问问打印机的索引号到底是啥情况?

将新对象保存在索引路径 Core Data

在 python 中跟踪索引的正确方法是啥?

Core Data 是不是比“as-you-type”搜索的自定义索引更有效?

注意:未定义索引:Drupal\Core\Routing\ 中的路径