Что такое плотный индекс (Dense Index)?
Плотный индекс — это техника индексации, при которой каждая запись в базе данных имеет соответствующую запись в индексе. Это означает, что индекс содержит прямую ссылку на каждую строку в таблице.
Характеристики плотного индекса:
- Однозначное отображение: Каждая запись в базе данных имеет запись в индексе.
- Быстрые поиски: Поскольку для каждой записи есть запись в индексе, поиски обычно быстрее, чем для разреженных индексов (но за счет большего объема памяти).
- Высокие требования к хранению: Поскольку каждая строка индексируется, плотные индексы требуют больше места для хранения по сравнению с разреженными индексами.
- Эффективен для маленьких таблиц: Хорошо работает для небольших наборов данных, но может быть неэффективен для очень больших таблиц.
Плотный индекс vs. Разреженный индекс
Характеристика | Плотный индекс | Разреженный индекс |
---|---|---|
Размер хранения | Больше (сохраняет запись для каждой записи) | Меньше (сохраняет меньше записей, обычно для каждого блока или страницы) |
Скорость поиска | Быстрее (прямой доступ к любой записи) | Медленнее (необходим дополнительный поиск внутри блока/страницы) |
Стоимость обновлений | Выше (каждое вставление/обновление затрагивает индекс) | Ниже (нужно обновить меньше записей индекса) |
Лучший случай использования | Малые и средние таблицы | Большие наборы данных с упорядоченными ключами |
Визуальный пример плотного индекса
Рассмотрим простую таблицу:
ID | Имя | Возраст |
---|---|---|
1 | Alice | 28 |
2 | Bob | 32 |
3 | Charlie | 25 |
4 | David | 40 |
Плотный индекс для столбца ID будет выглядеть так:
Индекс (ID) | Указатель на запись |
---|---|
1 | → Запись Alice |
2 | → Запись Bob |
3 | → Запись Charlie |
4 | → Запись David |
В то время как разреженный индекс может хранить только выбранные записи, например:
Индекс (ID) | Указатель на запись |
---|---|
1 | → Запись Alice |
3 | → Запись Charlie |
Разреженный индекс потребует дополнительного шага для поиска Bob и David, так как нужно будет выполнить поиск внутри индексированных блоков.