Core Data (iOS) 中的多列索引

Posted

技术标签:

【中文标题】Core Data (iOS) 中的多列索引【英文标题】:multi-column indexing in Core Data (iOS) 【发布时间】:2012-05-07 10:09:19 【问题描述】:

我记得在某处阅读过有关 ,但我在任何地方都找不到该信息。

ios5 Core Data 是否可以进行多列索引?

我可以在单列上设置多个索引,但找不到多列索引的选项。

【问题讨论】:

你还记得这个artandlogic.com/blog/2013/01/… 吗? 【参考方案1】:

我在 WWDC 2011 视频中找到了我想要的东西,Core Data (iOS5) 中的新功能。

他们称之为“复合索引”,它们是通过在 XCode 中选择实体来设置的,然后当您可以设置看起来像多列索引的内容时,您在检查器中有一个“索引”字段:“attribute1,attribute2 ”。

我刚刚测试过,它确实有效,所以从iOS5开始支持多列索引

【讨论】:

【参考方案2】:

CoreData 无法创建或使用多列索引。这意味着当您执行与您的多属性谓词对应的查询时,CoreData 只能使用一个索引进行选择。随后它使用索引进行属性测试之一,但是 SQLite 不能使用索引来收集第二个属性的匹配项,因此必须在内存中完成所有操作,而不是使用其磁盘索引结构。

Source

【讨论】:

我想我在 WWDC 2011 视频中找到了我想要的东西,Core Data (iOS5) 中的新功能。他们称之为“复合索引”,它们是通过在 XCode 中选择实体来设置的,然后当您可以设置看起来像多列索引的内容时,您在检查器中有一个“索引”字段:“attribute1,attribute2”。我会检查这确实符合预期

以上是关于Core Data (iOS) 中的多列索引的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 中多列非聚集索引中的列顺序是不是重要?

多列索引 单列索引

HSQLDB 索引和多列约束

认识SQLServer索引以及单列索引和多列索引的不同

由于多列上的唯一索引,无法更新 Rails 中的父记录和嵌套记录

iOS Tableview 中的多列