2016-01-11 3 views
0

Если я индексирую свойство, и в запросе я не использую предложение orderBy, будет ли использоваться индекс?iOS DBAccess индексирование свойства

Пример кода:

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

prop1 и prop2 имеют тип NSString.

Спасибо!

ответ

0

Если я могу просто взять ваш пример выше, вы можете указать только один заказ, к сожалению, они не являются побитовыми операторами.

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

Тогда, если опустить условие OrderBy тогда, к сожалению, вы на милость SQLite с использованием индекса при выполнении запроса. В DBAccess ничего не добавлено, что позволяет указать индекс для результатов.

Вы можете использовать профилирование, чтобы увидеть, какой индекс был использован в запросе, и который расскажет вам, какие оптимизаторы SQLite сделаны.

Смежные вопросы