iOS DBAccess 索引一个 属性

iOS DBAccess indexing a property

如果我索引 属性 并且在查询中我不使用 orderBy 子句,是否会使用索引?

示例代码:

DBIndexDefinition* index = [[DBIndexDefinition alloc] init];
[index addIndexForProperty:@"prop1" propertyOrder:DBIndexSortOrderAscending | DBIndexSortOrderDescending | DBIndexSortOrderNoCase secondaryProperty:@"prop2" secondaryOrder:DBIndexSortOrderAscending | DBIndexSortOrderDescending | DBIndexSortOrderNoCase];

prop1 和 prop2 是 NSString 类型。

谢谢!

如果我只能拿你上面的例子,你只能指定一个顺序,不幸的是它们不是按位运算符。

DBIndexDefinition* index = [[DBIndexDefinition alloc] init];
[index addIndexForProperty:@"prop1" propertyOrder:DBIndexSortOrderAscending secondaryProperty:@"prop2" secondaryOrder:DBIndexSortOrderAscending];

然后,如果您省略了 orderby 子句,不幸的是,您在执行查询时将受制于使用索引的 SQLite。没有向 DBAccess 添加任何允许您为结果指定索引的内容。

您可以使用分析来查看查询使用了哪个索引,这将告诉您 SQLite 进行了哪些优化。