Что именно означает «индексирование» в Core Data? - PullRequest
3 голосов
/ 22 июля 2010

В качестве ответа на вопрос, который я задал вчера ( Новый объект базовых данных, идентичный существующему: отдельный объект или другое решение? ), кто-то рекомендовал мне индексировать атрибут.

ПослеВ поисках в Google, что такое «индекс» в SQLite / Core Data, я боюсь, что я не близок к тому, чтобы точно знать, что это такое или как он ускоряет выборку на основе атрибута.Имейте в виду, что я ничего не знаю о SQLite / базах данных в целом, кроме смутной идеи, основанной на способе чтения, пути, пути, слишком много о Базовых данных за последние несколько месяцев.

Ответы [ 3 ]

3 голосов
/ 22 июля 2010

Проще говоря, индексирование является своего рода предварительной сортировкой. Если у вас есть числовой индекс атрибута, магазин поддерживает связанный список в числовом порядке. Если у вас есть текстовый атрибут, он поддерживает связанный список в алфавитном порядке. В зависимости от алгоритма, он может содержать и другие виды информации об атрибутах. Он хранит данные в индексе, прикрепленном к файлу постоянного хранилища.

Это ускоряет выборки, основанные на индексированном атрибуте, с компромиссом при увеличении размера файла и немного более медленной вставке.

2 голосов
/ 13 марта 2011

Все эти ответы хорошие, но чрезмерно технические.

Индекс в значительной степени идентичен индексу, который вы найдете в конце книги. Таким образом, если вы хотите узнать, на какой странице встречается определенное слово, вы должны пройти по алфавиту и быстро найти все страницы, где встречалось это слово.

Если бы у вас не было индекса, то пользователю пришлось бы переходить к КАЖДОЙ одной странице слово за словом, что может занять довольно много времени. Таким образом, индекс создается таким образом ТОЛЬКО один раз, а не каждый раз, когда пользователь хочет выполнить поиск.

1 голос
/ 22 июля 2010

Википедия содержит отличное объяснение индекса базы данных:

"Индекс базы данных - это структура данных, которая повышает скорость операций поиска данных в таблице базы данных за счет более медленных операций записи и увеличения объема памяти."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...