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

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

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

Что такое индекс?

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

instagram viewer

Зачем использовать индексирование базы данных?

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

Однако предположим, что вы отсортировали таблицу в алфавитном порядке по именам сотрудников. Итак, здесь ключи индексации основаны на «столбце имени». В этом случае, если вы выполните поиск по последней записи, "Зак, ”Вы можете перейти к середине таблицы и решить, будет ли наша запись до или после столбца.

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

Если бы в компании было 1 000 000 сотрудников и последней записью было «Zack», вам пришлось бы выполнить поиск в 50 000 строках, чтобы найти его имя. А с помощью алфавитной индексации это можно сделать за несколько шагов. Теперь вы можете себе представить, насколько быстрее могут быть просмотр и доступ к данным с помощью индексации базы данных.

Связанный: 13 самых важных команд SQL, которые должен знать любой программист

Различные методы организации файлов для индексов базы данных

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

1. Упорядоченный индексный файл: Это традиционный метод хранения индексных данных. В этом методе ключевые значения сортируются в определенном порядке. Данные в упорядоченном индексном файле можно сохранить двумя способами.

  • Разреженный индекс: При этом типе индексации для каждой записи создается запись в указателе.
  • Плотный индекс: При плотном индексировании для некоторых записей создается запись индекса. Чтобы найти запись в этом методе, сначала необходимо найти наиболее значимое значение ключа поиска из записей индекса, которые меньше или равны искомому значению ключа поиска.

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

Типы индексации базы данных

Обычно существует три метода индексации базы данных. Они есть:

  • Кластерное индексирование
  • Некластеризованное индексирование
  • Многоуровневое индексирование

1. Кластерное индексирование

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

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

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

Короче говоря, индексы кластеризации - это места, где схожие типы данных группируются и для них создаются индексы.

Пример: Предположим, есть компания, в которой работает более 1000 сотрудников в 10 различных отделах. В этом случае компания должна создать кластерную индексацию в своей СУБД для индексации сотрудников, которые работают в одном отделе.

Каждый кластер, в котором сотрудники работают в одном отделе, будет определен как единый кластер, а указатели данных в индексах будут относиться к кластеру как к единому объекту.

Связанный: Что такое внешние ключи в базах данных SQL?

2. Некластеризованное индексирование

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

Пример: Некластеризованное индексирование похоже на книгу со страницей упорядоченного содержания. Здесь указатель данных или ссылка - это упорядоченная страница содержимого, отсортированная по алфавиту, а фактические данные - это информация на страницах книги. Страница содержания не хранит информацию о страницах книги в их порядке.

3. Многоуровневое индексирование

Многоуровневое индексирование используется, когда количество индексов очень велико, и он не может сохранить первичный индекс в основной памяти. Как вы, возможно, знаете, индексы базы данных содержат ключи поиска и указатели данных. При увеличении размера базы данных увеличивается и количество индексов.

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

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

Связанный: Как подключиться к базе данных MySQL с помощью Java

Что такое фрагментация индекса SQL?

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

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

Электронное письмо
Данные SQL Server повреждены? Попробуйте восстановить его с помощью SQL Recovery Toolbox

Recovery Toolbox for SQL Server помогает исправить поврежденные файлы MDF MS SQL Server для всех версий.

Читать далее

Похожие темы
  • Программирование
  • SQL
  • Анализ данных
  • база данных
Об авторе
Задхид А. Пауэлл (Опубликовано 12 статей)

Задхид Пауэлл - компьютерный инженер, который отказался от программирования, чтобы начать писать! Кроме того, он является специалистом по цифровому маркетингу, энтузиастом технологий, экспертом по SaaS, читателем и страстным приверженцем тенденций в области программного обеспечения. Часто вы можете увидеть, как он раскачивает клубы в центре города со своей гитарой или исследует дайвинг на дне океана.

Ещё от Zadhid A. Пауэлл

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

.