ENIGMA AI
ENIGMA AI

Собеседование по SQL и базам данных в 2026 году

Вопросы по технологиям

Разбор сложных вопросов по SQL, индексам и архитектуре БД. Практические задачи для Middle и Senior инженеров с ответами.

В 2026 году на интервью для Middle/Senior позиций фокус сместился с простого написания JOIN-запросов на понимание механизмов хранения, изоляции транзакций и оптимизации распределенных систем. Компании проверяют умение работать с колоночными БД (ClickHouse, DuckDB) и векторными индексами для LLM-приложений.

Тренды в вопросах по БД в 2026 году

Если в 2020-х годах было достаточно знать уровни изоляции транзакций и уметь строить индексы, то сегодня интервьюеры копают глубже. Ожидается понимание того, как база данных взаимодействует с операционной системой, как работают механизмы Write-Ahead Logging (WAL) и почему LSM-деревья вытесняют B-деревья в высоконагруженных системах с интенсивной записью.

Индексация: глубже, чем B-Tree

На собеседованиях уровня Middle+ стандартный вопрос про индексы часто перерастает в обсуждение внутренней структуры.

B-Tree vs LSM-Tree

Важно различать, где какой индекс эффективнее. B-деревья (PostgreSQL, MySQL) оптимизированы для чтения и выборок по диапазонам. LSM-деревья (RocksDB, Cassandra, ScyllaDB) выигрывают на записи за счет последовательного сброса данных из памяти на диск. В 2026 году часто спрашивают про гибридные решения, например, как реализовано хранение в современных версиях движков типа WiredTiger (MongoDB).

Векторные индексы

С развитием RAG-систем (Retrieval-Augmented Generation) в SQL-базы добавили поддержку векторного поиска. Ожидайте вопросы про pgvector в Postgres: разницу между IVFFlat и HNSW индексами. HNSW (Hierarchical Navigable Small Worlds) обеспечивает быстрее поиск, но потребляет больше оперативной памяти и дольше строится.

Транзакции и уровни изоляции

Классика по-прежнему актуальна, но теперь ее проверяют через практические кейсы. Вместо зазубривания определений ACID, вас попросят спроектировать систему перевода денег между кошельками в условиях распределенной БД.

Аномалии и MVCC

Интервьюеры проверяют понимание Multi-Version Concurrency Control. Как именно база понимает, какую версию строки отдать транзакции? В Postgres это реализуется через скрытые поля xmin и xmax. Нужно уметь объяснить, почему Read Committed в Postgres ведет себя не так, как в Oracle, и в каких случаях возникает Write Skew даже на уровне Snapshot Isolation.

Оптимизация запросов и Explain Plan

Практическая часть часто включает анализ плана выполнения.

  • Index Only Scan: почему он не всегда работает в Postgres (зависимость от Visibility Map и процесса Vacuum).
  • Join Strategies: разница между Nested Loop, Hash Join и Merge Join. Когда планировщик выбирает Hash Join? (Обычно при больших объемах данных, когда нет подходящих индексов).
  • JIT-компиляция: как включение JIT в PostgreSQL 16+ влияет на аналитические запросы.

Распределенные базы данных и шардирование

Для Senior-позиций обязательны вопросы по CAP-теореме и PACELC. В 2026 году популярны дискуссии о NewSQL (CockroachDB, TiDB, YugabyteDB).

Консистентность

Нужно понимать разницу между Linearizability и Eventual Consistency. Как работает протокол Raft или Paxos для обеспечения консенсуса при репликации логов. Почему в распределенной системе невозможно добиться идеальной синхронизации без задержек (Latency vs Consistency).

Работа с JSON и NoSQL в реляционных БД

Граница между SQL и NoSQL размылась. Современный PostgreSQL эффективно работает с типом JSONB. На собеседовании могут спросить: когда стоит выносить данные в отдельную таблицу, а когда оставить в JSONB? Ответ кроется в частоте обновлений (JSONB переписывается целиком) и необходимости индексации отдельных полей через GIN-индексы.

Практические задачи на SQL

Типовая задача: «Напишите запрос для поиска топ-3 категорий товаров по выручке за последний месяц, используя оконные функции».

SELECT category_id, revenue, RANK() OVER (ORDER BY revenue DESC) as rnk FROM (SELECT category_id, SUM(price) as revenue FROM orders WHERE order_date > now() - interval '1 month' GROUP BY category_id) tmp WHERE rnk <= 3;

Вас также попросят оптимизировать этот запрос, если в таблице orders 1 миллиард строк. Здесь стоит упомянуть партиционирование по датам и материализованные представления (Materialized Views).

Часто задаваемые вопросы

Сколько зарабатывают Data-специалисты?

Узнайте зарплаты Data Scientist и Data Analyst

Смотреть зарплаты