Что быстрее, индекс или Seq Scan

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

Ответ

Seq Scan читает всю таблицу последовательно, что медленнее, особенно на больших таблицах. Индекс (Index Scan) использует B-дерево или другие структуры для быстрого поиска, избегая полного сканирования.

Когда что использовать:

  • Seq Scan эффективен при выборке >5-10% строк таблицы
  • Index Scan выигрывает при точечных запросах (WHERE id = 123)
// Пример: индекс ускоряет поиск по PK
db.Query("SELECT * FROM users WHERE id = $1", 42) // Использует индекс
db.Query("SELECT * FROM users WHERE active = true") // Возможен Seq Scan

Нюанс: индекс требует памяти и замедляет INSERT/UPDATE.