【问题标题】: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/数据库一无所知。

【问题讨论】:

    标签: objective-c core-data


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2020-05-03
          • 2012-01-23
          • 1970-01-01
          • 2012-10-26
          • 1970-01-01
          • 2010-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多