> Какие типы индексов кроме B-tree существуют и используются (JavaScript)

Уровень: senior · Роль: frontend · Язык: JavaScript · Категория: Технические вопросы

Компании: Mosline

Стек: JavaScript, Node.js, Java

> Пример ответа

Помимо B-tree в современных СУБД и поисковых системах активно используются:

  • Hash-индексы - идеальны для точного поиска по равенству (WHERE id = 5), но не поддерживают диапазонные запросы. В PostgreSQL есть hash, в MySQL - MEMORY таблицы с HASH.

  • GiST (Generalized Search Tree) - обобщённое дерево для нестандартных типов данных: геометрические объекты, полнотекстовый поиск, массивы. Используется в PostgreSQL для tsvector и cube.

  • GIN (Generalized Inverted Index) - обратный индекс для композитных значений: массивы, JSONB, полнотекстовый поиск. Отлично подходит для поиска элементов внутри JSON-документов.

  • Bitmap-индексы - эффективны для столбцов с небольшим количеством уникальных значений (пол, статус). Применяются в Oracle, но редко в open-source СУБД.

  • R-tree - пространственный индекс для 2D/3D данных (координаты, геометрия). Используется в PostGIS, MongoDB (2dsphere).

  • Full-text index - специализированный обратный индекс для текстового поиска. В MySQL - FULLTEXT, в Elasticsearch - инвертированный индекс на базе Lucene.

  • LSM-tree (Log-Structured Merge-Tree) — основа NoSQL-решений (Cassandra, LevelDB, RocksDB). Оптимизирован для высоких нагрузок на запись, данные сначала пишутся в память, затем сливаются на диск.

В контексте Node.js и JavaScript чаще всего сталкиваешься с B-tree (по умолчанию в SQLite, PostgreSQL, MongoDB), но при работе с JSONB в PostgreSQL или с Elasticsearch (через @elastic/elasticsearch) важно понимать GIN и инвертированные индексы.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью