Подготовка к интервью

Банк вопросов с собеседований

Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.

2523 вопроса 1634 компании 353 технологии

Усильте резюме перед собеседованием

Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.

Анализ резюме
Сбросить

Каталог

Результаты поиска

Найдено: 2523
Теория

Django ORM создаёт 35 запросов на страницу каталога. Какое первое решение наиболее зрелое?

Наиболее зрелый первый шаг — снять трассировку, найти запросы и затем настроить выборочную загрузку связей. Число 35 само по себе ещё не объясняет причину задержки.

Читать ответ
Теория

Всегда ли для ускорения запроса к базе данных нужно индексировать таблицу?

Нет. Узким местом могут быть лишние строки, неудачный JOIN, сортировка, блокировки, N+1 или передача данных. Индекс полезен только если план запроса сможет выгодно его использовать.

Читать ответ
Теория

Что делал с индексами в PostgreSQL, что позволило снизить latency (p95/p99)?

Расскажите о конкретном медленном запросе, его плане и изменении индекса: состав, порядок колонок, частичный предикат или покрытие. Снижение p95/p99 подтверждают измерениями до и после.

Читать ответ
Теория

Своими словами расскажите, как вы проектировали PostgreSQL для витрины маркетплейса: бизнес-требования, сколько таблиц, какие связи, что такое бизнес-сущность?

Начните с требований витрины и выделения бизнес-сущностей: товар, вариант, продавец, предложение, категория. Затем объясните таблицы, ключи и связи на реальном проекте, не придумывая их количество.

Читать ответ
Теория

Что произойдёт с базой данных, если в неё придёт 10 000 обновлений одной и той же строки?

Обновления одной строки становятся горячей точкой: конкурирующие транзакции ждут блокировку или получают конфликт. 10 000 запросов не выполнят изменение одной строки параллельно без координации.

Читать ответ
Теория

Представьте, что в базе данных PostgreSQL есть таблица на 50 миллионов строк. Нужно добавить новую колонку со значением по умолчанию: ALTER TABLE users ADD COLUMN status VARCHAR DEFAULT 'active'. Какие риски для продакшена следует учитывать?

В PostgreSQL 11+ постоянный DEFAULT 'active' обычно добавляется без переписывания всех 50 млн строк. Однако ALTER TABLE всё равно требует сильной блокировки и может остановить конкурирующие запросы.

Читать ответ
System Design

Опиши структуру реляционной базы данных для интернет-магазина: покупатели, товары и заказы (таблицы и поля без типов).

Минимальная схема включает покупателей, товары, заказы и позиции заказа. Позиции связывают заказ с товарами и сохраняют количество и цену на момент покупки.

Читать ответ
Теория

Как организовать миграции базы данных в CI/CD так, чтобы не прерывать работу сервиса?

Используйте expand–migrate–contract: сначала совместимое расширение схемы, затем перенос данных и переключение кода, в конце удаление старых структур. Старый и новый код должны переживать период совместной работы.

Читать ответ
Теория

Как устроена транзакция под капотом в PostgreSQL? Что такое WAL?

PostgreSQL сочетает MVCC для видимости версий строк, блокировки для конкурентных изменений и WAL для восстановления. WAL записывает изменения раньше соответствующих страниц данных на диске.

Читать ответ
Теория

До какой нормальной формы вы приводили базу данных: первой, второй, третьей или четвёртой?

Назовите реальную нормальную форму и объясните, какие зависимости устраняли. Для прикладных схем частая отправная точка — 3НФ, но степень нормализации выбирают по данным и нагрузке.

Читать ответ