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

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

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

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

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

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

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

Каталог

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

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

Что такое Unit of Work в SQLAlchemy и на каком этапе сессия реально отправляет SQL-запросы в базу?

Unit of Work отслеживает новые, изменённые и удалённые ORM-объекты и отправляет их изменения при flush. commit завершает транзакцию, но SQL может выполняться значительно раньше.

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

Вы хорошо затронули пул соединений и сравнение планов запросов, а сетевую инфраструктуру упомянули поверхностно. Расскажите, как именно вы проверите насыщение пула соединений в PostgreSQL?

Сначала измерьте ожидание выдачи соединения, число занятых и свободных соединений, очередь и таймауты именно в пуле приложения или PgBouncer. pg_stat_activity показывает серверные сессии, а не всю очередь пула.

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

Что такое Write-Ahead Log (WAL) Compression в PostgreSQL? В каких случаях включение сжатия WAL-файлов снижает нагрузку на дисковую подсистему и сеть, а в каких приводит к деградации производительности из-за чрезмерной утилизации ядер CPU?

wal_compression в PostgreSQL сжимает прежде всего полные образы страниц в WAL, а не произвольный WAL-файл целиком. Это уменьшает объём записи и передачи ценой дополнительной работы CPU.

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

Новый публичный 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 и изменения независимых строк обычно продолжаются.

Читать ответ