iOS DBAccess索引属性

时间:2016-01-11 14:11:40

标签: ios indexing dbaccess

如果我索引一个属性并且在查询中我不使用orderBy子句会使用索引吗?

示例代码:

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

prop1和prop2属于NSString类型。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我可以采用上面的例子,你只能指定一个订单,不幸的是它们不是按位运算符。

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

然后,如果省略orderby子句,那么遗憾的是,在执行查询时,您将受SQLite利用索引的支配。 DBAccess中没有添加任何内容,允许您为结果指定索引。

您可以使用分析来查看查询使用的索引,并告诉您SQLite所做的优化。