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

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

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

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

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

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

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

Каталог

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

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

Новый публичный API должен отдавать каталог за 150 мс, но текущая выборка Django ORM тянет связанные объекты и иногда делает десятки запросов. Что выберешь первым: снять журнал SQL-запросов и подробный план выполнения запроса PostgreSQL, исправить загрузку связей в Django ORM или сразу добавить кеш — и почему?

Сначала измерьте число и длительность SQL-запросов, затем устраните подтверждённый N+1 через подходящую загрузку связей. Кеширование не должно маскировать необъяснённую дорогую выборку.

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

Понимаю, что сложно ответить сразу. Можете, пожалуйста, описать, какие ключевые элементы плана выполнения вы обычно анализируете в PostgreSQL?

Проверьте реальные строки и повторения узлов, методы сканирования и соединения, сортировки, временные файлы и buffers. Главная цель — найти, где план выполняет лишнюю работу.

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

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

Смотрите расхождение estimated и actual rows, время, loops, способ доступа и JOIN, сортировки, spills и buffers. Большая стоимость узла не равна измеренному времени выполнения.

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

Блокирует ли PostgreSQL целую таблицу при изменении данных?

UPDATE берёт табличную блокировку ROW EXCLUSIVE и блокирует затронутые строки, но это не запрет всех обращений к таблице. Обычные SELECT и изменения независимых строк обычно продолжаются.

Читать ответ
Лайвкодинг

Ревью декоратора: wraps, таймер и опасный return в finally

В декораторе ошибочны wrap, time.now и return в finally. Нужно functools.wraps, монотонный таймер и логирование без подмены результата; декоратор должен быть определён до применения.

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

На примере любой задачи расскажите, как вы искали узкие места в запросах к PostgreSQL: что использовали и как находили проблему?

Начните с конкретного медленного запроса и измерений, затем изучите план, фактические строки, чтение буферов и ожидания. Меняйте только выявленное узкое место и сравнивайте результат.

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

Что такое «проблема разрастания индексов» (index bloat) в PostgreSQL, почему она возникает из-за механики MVCC и как с ней бороться?

Index bloat — избыточный размер индекса из-за устаревших записей и неэффективно заполненных страниц. MVCC откладывает удаление старых версий; частые изменения и задержанная очистка усугубляют рост.

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

Как проверить команды запуска в README проекта

Сверьте каждую цель с Makefile и фактической конфигурацией. Комментарий к migrate нельзя считать доказательством запуска тестов: название и описание противоречат друг другу.

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

Почему в PostgreSQL таблица может раздуваться при малом числе строк и как это связано с VACUUM? Можно ли настроить vacuum и насколько он тяжёлый?

UPDATE и DELETE оставляют старые версии строк из-за MVCC. Даже при малом числе актуальных строк таблица и индексы могут содержать много свободного или пока неочищенного пространства.

Читать ответ
Поведенческий

Какой был объём одновременных запросов и почему это было критично для PostgreSQL?

Назовите измеренную конкуренцию и объясните, какой ресурс PostgreSQL упирался в предел: CPU, I/O, locks, connections или длительные транзакции. Одно число запросов без их стоимости мало что говорит.

Читать ответ