0

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

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

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

4

2 回答 2

0

数据库索引是有代价的。数据库必须使索引保持最新,这会减慢插入、删除和可能的更新速度。写性能。

但是索引加快了查询和按子句排序。读取性能。

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

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

与往常一样,仪器是决定什么是最好的最好方法。

于 2012-06-24T10:38:54.980 回答
0

根据文档,是的,如果您有 sql 支持的存储。谓词和排序描述符在数据库中编译和评估,您将获得索引优势。

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

于 2012-06-23T17:46:42.157 回答