Индексирование базы данных - как это работает? - PullRequest
6 голосов
/ 02 июня 2010

Как индексирование повышает производительность поиска данных?

Как работает индексация?

Ответы [ 5 ]

6 голосов
/ 02 июня 2010

Продукты баз данных (RDMS), такие как Oracle, MySQL строит свою собственную систему индексации, они дают некоторый контроль администраторам баз данных, однако никто точно не знает, что происходит в фоновом режиме, кроме людей, которые проводят исследования в этой области, так почему индексация:

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

* +1007 *

Есть много методов индексации, например:

  • Первичная индексация, вторичная индексация
  • B-деревья и варианты (B + -дерево, B * -дерево)
  • Хеширование и варианты (линейное хеширование, спираль и т. Д.)

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

Alice
...
...
AZ...
Bob
Bri
...
Bza
...

Теперь у вас есть индекс в этом индексе, в котором вы храните только Алису и Боба, а также блоки, на которые они указывают, таким образом пользователи могут быстрее получать доступ к данным. RDMS работает с деталями.

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

Системы управления базами данных Ramakrishn CGherke

альтернативный текст http://ecx.images -amazon.com / images / I / 51QUe5OKQdL._BO2,204,203,200_PIsitb-sticker-arrow-click, TopRight, 35, -76_AA300_SH20_OU01_.jpg

3 голосов
/ 04 июня 2010

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

Кластерный индекс - это место, где сами строки со всеми столбцами * хранятся вместе с индексом. Сканирование кластеризованных индексов лучше, чем сканирование некластеризованных непокрывающих индексов, поскольку требуется меньше поисков.

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

* обычно исключая столбцы BLOB / длинного текста и т. Д.

3 голосов
/ 02 июня 2010

Как индекс в книге увеличивает удобство поиска нужной страницы?

Гораздо проще просмотреть алфавитный список и перейти на нужную страницу, чем читать каждую страницу.

1 голос
/ 18 сентября 2011

Индексы обеспечивают оптимальную структуру данных для поисковых запросов. Если ваш набор данных сильно меняется, вы также можете оценить производительность обновления / регенерации индекса. Существует множество механизмов индексирования с открытым исходным кодом, таких как lucene, и вы можете искать в Интернете подробную информацию о тестах производительности.

1 голос
/ 02 июня 2010

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

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