Какими структурами данных может быть представлен индекс

«Какими структурами данных может быть представлен индекс» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go индексы могут быть представлены различными структурами данных в зависимости от требований к доступу и производительности:

  1. Мапы (map): Наиболее распространённый вариант для быстрого доступа по ключу.
    index := make(map[string]int)
    index["key"] = 42
  1. Срезы ([]T): Подходят для числовых индексов или случаев, когда важен порядок.
    index := []string{"a", "b", "c"}
  1. Деревья: Используются для упорядоченных индексов (например, container/list или сторонние библиотеки вроде github.com/google/btree).

  2. Хеш-таблицы: Аналогично мапам, но могут быть кастомными реализациями.

  3. Битовые маски: Для компактного хранения флагов или булевых значений.

Выбор зависит от задач: мапы — O(1) доступ, деревья — упорядоченность, срезы — простота и скорость для последовательных данных.