如果我正在执行核心数据提取请求,并应用排序描述符,例如:
NSSortDescriptor *sort= [[NSSortDescriptor alloc] initWithKey:@"createDate" ascending:NO];
属性createDate
应该是索引属性吗?为什么或为什么不呢?
答案 0 :(得分:0)
According to the docs,是的,如果你有一个sql支持的商店。谓词和排序描述符在数据库中进行编译和评估,您将获得索引优势。
请参阅“获取谓词和排序描述符”部分。
答案 1 :(得分:0)
数据库索引需要付出代价。数据库必须使索引保持最新,这会减慢插入,删除和可能的更新。写性能。
但索引会加快查询和按子句排序。阅读表现。
这是两者之间的权衡。什么对你最重要?读写性能?
好吧,索引有另一个副作用:内存使用情况。如果您需要对某些条目进行排序,即使只有一次,没有索引,您也必须在内存中对它们进行排序。这意味着将它们全部加载到内存中。至少你要排序的列,而不是整个。但仍然。
一如既往,仪器仪表是决定最佳选择的最佳方式。