Назад к вопросам
Middle
1
Какие виды индексов есть в базах данных, в чём их отличия, и как вы решаете, когда их применять?
Компании, где спрашивали
Япоки
Ответ от нейросети
sobes.tech AI
В базах данных существуют разные виды индексов, основные из них:
- B-Tree индекс — самый распространённый, подходит для быстрого поиска, сортировки и диапазонных запросов.
- Hash индекс — эффективен для точного поиска по ключу, но не поддерживает диапазонные запросы.
- Bitmap индекс — используется для столбцов с небольшим числом уникальных значений, хорошо подходит для аналитических запросов.
- Full-text индекс — для быстрого поиска по тексту.
Отличия в структуре и сценариях использования:
- B-Tree универсален.
- Hash быстрее для точного совпадения.
- Bitmap эффективен при низкой кардинальности.
Когда применять:
- Индексы ставятся на колонки, по которым часто выполняются фильтры, сортировки или соединения.
- Не стоит индексировать слишком много колонок, чтобы не замедлять операции вставки/обновления.
- Анализируйте планы запросов, чтобы понять, какие индексы нужны.
Пример в PostgreSQL:
CREATE INDEX idx_users_email ON users(email);
Этот индекс ускорит поиск пользователей по email.