Кто-нибудь может объяснить, пожалуйста, "хранение" против "индексации" в базах данных? - PullRequest
1 голос
/ 20 января 2010

Что такое хранение и что индексирует поле, когда дело доходит до поиска? В частности, я говорю о MySQL или SOLR.

Есть ли какая-нибудь обстоятельная статья об этом, я сделал несколько поисков без удачи!

Спасибо

Ответы [ 6 ]

4 голосов
/ 20 января 2010

Хранение информации в базе данных означает просто запись информации в файл.

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

2 голосов
/ 20 января 2010

Хранение и индексирование - это концепция SOLR.

В SOLR поле stored не может быть найдено или отсортировано.Он может быть получен в результате запроса, который включает в себя поиск по полю indexed.

В MySQL, наоборот, вы также можете искать и сортировать по неиндексированным полям: это будет только медленнее, но все же возможно (в отличие от SOLR)

2 голосов
/ 20 января 2010

Из Википедия :

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

Хранение - это просто помещение данных в таблицы.

1 голос
/ 20 января 2010

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

0 голосов
/ 20 января 2010

Данные

L1. This
L2. Is
L3. My Data

И индекс

This -> L1
Is -> L2
My -> L3
Data -> L3

Аналогия с данными и индексами справедлива и для книг.

0 голосов
/ 20 января 2010
Хранение

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

индексирование означает создание некоторой отдельной структуры данных для оптимизации расположения и извлечения этих данных более быстрым способом, чем простое чтение всей базы данных (или всей таблицы) и просмотр каждой записи до тех пор, пока алгоритм поиска в базе данных не найдет то, что вы спросил его ... Обычно базы данных используют так называемые индексы сбалансированного дерева, которые являются расширением концепции двоичного дерева. Посмотрите Двоичное дерево в Google / Википедии, чтобы получить более глубокое понимание того, как это работает ...

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