我应该索引NSSortDescriptor中使用的属性吗?

时间:2012-06-23 16:30:45

标签: iphone objective-c ios cocoa-touch core-data

如果我正在执行核心数据提取请求,并应用排序描述符,例如:

NSSortDescriptor *sort= [[NSSortDescriptor alloc] initWithKey:@"createDate" ascending:NO];

属性createDate应该是索引属性吗?为什么或为什么不呢?

2 个答案:

答案 0 :(得分:0)

According to the docs,是的,如果你有一个sql支持的商店。谓词和排序描述符在数据库中进行编译和评估,您将获得索引优势。

请参阅“获取谓词和排序描述符”部分。

答案 1 :(得分:0)

数据库索引需要付出代价。数据库必须使索引保持最新,这会减慢插入,删除和可能的更新。写性能。

但索引会加快查询和按子句排序。阅读表现。

这是两者之间的权衡。什么对你最重要?读写性能?

好吧,索引有另一个副作用:内存使用情况。如果您需要对某些条目进行排序,即使只有一次,没有索引,您也必须在内存中对它们进行排序。这意味着将它们全部加载到内存中。至少你要排序的列,而不是整个。但仍然。

一如既往,仪器仪表是决定最佳选择的最佳方式。

相关问题