Подтвердить что ты не робот

Что такое индексированное свойство атрибута CoreData?

У меня есть модель данных Core с 32-битным хеш-значением. Мне нужно быстро найти конкретные хэш-значения. Должен ли я использовать индексированное свойство? Я понятия не имею, что он делает, и documentation не помогает (я смотрю не в том месте?)

Итак, что именно индексируется?

model

enter image description here

4b9b3361

Ответ 1

Я бы рекомендовал прочитать это по индексам: http://en.wikipedia.org/wiki/Index_(database).  

Проще говоря, механизм базы данных создает новую структуру, которая сортирует отсортированный столбец (который соответствует свойству) и ссылку на соответствующую строку для каждой записи (первичный ключ). Это позволяет ускорить поиск (поскольку поиск в упорядоченных списках выполняется быстрее, чем в неупорядоченных списках). Но это увеличивает используемое хранилище (для структуры данных) и время вставки (чтобы сохранить сортировку структуры).

Итак, да, вы должны использовать индексы в таких случаях.

Ответ 2

Если вы установите флажок, Core Data создаст индекс значений, что сделает поиск более быстрым и эффективным. Это похоже на то, что использует Spotlight. Без индекса он будет каждый раз путешествовать по базе данных. Вы говорите, что вам нужно быстро найти значения - тогда вы должны их индексировать.